映画APPプロジェクトのまとめ
11329 ワード
どのように改ページしますか
今回のプロジェクトでは私たちの子供の総監がページ分けの機能を作っています.ここでまとめてみたいです.
jqPaginatorプラグインを採用しました.ソースは以下の通りです.
js部分
今回のスタイルではブックレットフレームを利用していますが、jsではjqPaginatorプラグインを利用しています.
1、「ターゲットページ」のページ番号、Numberタイプ
2、トリガタイプ、可能な値:「init」(初期化)、「change」(改ページをクリック)
今回のプロジェクトでは私たちの子供の総監がページ分けの機能を作っています.ここでまとめてみたいです.
jqPaginatorプラグインを採用しました.ソースは以下の通りです.
js部分
axios.post('/allMovies').then(function (ans) {
let mynum = parseInt((ans.data.length/16))+1;
let str = '';
$('.ttx-my-number').jqPaginator({
totalPages: mynum,
visiblePages: 20,
currentPage: 1,
onPageChange: function (num, type) {
let str = '';
let mycurrentnum = (num-1)*16;
let myendnum = num*16 - 1;
if(myendnum > ans.data.length - 1){
myendnum = ans.data.length - 1;
}
for (let i = mycurrentnum; i <=myendnum; i++) {
str += '';
str += `![]($ans.data[i].moviemg)`;
str += `${ans.data[i].name}${ans.data[i].score}
`;
str += ``;
}
$(".ttx-movie-container").empty().append(str);
}
});
});
html部分
解析今回のスタイルではブックレットフレームを利用していますが、jsではjqPaginatorプラグインを利用しています.
axios.post('/allMovies').then(function (ans) {}
axios先端からバックエンド('/all Movies')にpostデータをルーティングします.then()の関数はデータ受信後のコールバック関数です.ansは受信データで、タイプは対象です.ansのdata属性の値は配列です.let mynum = parseInt((ans.data.length/16))+1;
ansのdata属性値の長さを求めます.$('.ttx-my-number').jqPaginator({})
jquery方法を利用して、これはクラスにttx-my-numberのためにjs関数を呼び出します. totalPages: mynum,
visiblePages: 20,
currentPage: 1,
総ページ数はバックグラウンドからのデータmynumで、改ページの総ページ数は20で、現在のページ番号は1です. onPageChange: function (num, type) {}
コールバック関数は、ページを切り替える際にトリガ(初期化ページを含む)され、2つのパラメータが入ってきます.1、「ターゲットページ」のページ番号、Numberタイプ
2、トリガタイプ、可能な値:「init」(初期化)、「change」(改ページをクリック)
let mycurrentnum = (num-1)*16;
*16代表は各ページに16映画があり、mycurrentnumはクリック後の目標ページをクリックした後にロードする必要がある最初のデータを表しています.myendnum = num*16 - 1;
myendnumは目標ページ数をクリックして最後のデータをロードすることを表します.if(myendnum > ans.data.length - 1){
myendnum = ans.data.length - 1;
}
ターゲットページにロードする必要がある最後のデータがバックグラウンドから提供されるデータよりも大きい場合、最後のデータはバックグラウンドから提供される最後のデータです.for (let i = mycurrentnum; i <=myendnum; i++) {}
目標ページをクリックして最初のデータを最後のデータにロードするという意味です.str += '';
div:
![]($ans.data[i].moviemg)
div: を しても、 はリンクです.
${ans.data[i].name}
${ans.data[i].score}
div: の を し、 もリンクです.$(".ttx-movie-container").empty().append(str);
jquery :classはttx-movie-containerであり、emptyは ttx-movie-containerに していたサブノードとそのテキスト をクリアし、apped()はttx-movie-containerに に したばかりの しいノードとコンテンツを します.
まとめ:
まずバックグランドにすべてのデータを り して、ターゲットページをクリックしたら、 にページ の のデータを にしてから、ターゲットページに な のデータを のデータにロードして、 ページしました.ページ の ができて、 もデータを しなくてもいいです.
:
いくつかの さな を できます.
ページ で :
はい、あります
にinputの ボックスを して、 でデータを して、 をmycurrentnumに えます.
ユーザーにページ を させる
input ボックスを することもできます.*16の16を パラメータcout(カスタム)として、 でデータを し、 をcoutに り てます.
のまとめ
のプロジェクトの は のグループが「 」、「あいまい 」、「 のあいまい 」を しました.その には したいところがあります. はよく うかもしれません.
ソースは の りです
JS $(document).ready(function () {
$('.cr-mysubmit').on('click',function () {
let myselect = $('.cr-search-select').find("option:selected").html();
let myinput = $('.cr-myinput').val();
if(myinput){
if(myselect === ' '){
$.post('/oneSearchResult',{moviename:myinput},function (ans) {
if(ans){
let str = '';
for (let i = 0; i < ans.length; i++) {
str += '';
str += `![]($ans[i].moviemg)`;
str += `${ans[i].name}${ans[i].score}
`;
str += ``;
}
$(".ttx-movie-container").empty().append(str);
}
});
}else {
$.post('/searchResult',{comment:myselect,moviename:myinput},function (ans) {
if(ans){
let str = '';
for (let i = 0; i < ans.length; i++) {
str += '';
str += `![]($ans[i].moviemg)`;
str += `${ans[i].name}${ans[i].score}
`;
str += ``;
}
$(".ttx-movie-container").empty().append(str);
}
});
}
}else {
return bootbox.alert(" !");
}
});
バックエンドサーバ //
app.post("/oneSearchResult",urlencodedParser, function (req, res) {
let moviename=req.body.moviename;
req.models.T_movie.find({name:orm.like("%"+moviename+"%")}, function (err, movies) {
if (err) throw err;
res.send(movies);
});
});
/* OK*/
app.post("/searchResult",urlencodedParser, function (req, res) {
let moviename=req.body.moviename;
let comment=req.body.comment;
req.models.T_movie.find({name:orm.like("%"+moviename+"%"),comment:orm.like("%"+comment+"%")}, function (err, movies) {
if (err) throw err;
res.send(movies);
});
});
html
は、プルダウンリストが されている を する . let myselect = $('.cr-search-select').find("option:selected").html();
ブロック を する. let myinput = $('.cr-myinput').val();
の を にし、 をロードする . $(".ttx-movie-container").empty().append(str);
1 のデータを して、あいまいな . req.models.T_movie.find({name:orm.like("%"+moviename+"%")}, function (err, movies) {
if (err) throw err;
res.send(movies);
});
のボケ : {comment:myselect,moviename:myinput}
: req.models.T_movie.find({name:orm.like("%"+moviename+"%"),comment:orm.like("%"+comment+"%")}, function (err, movies) {
if (err) throw err;
res.send(movies);
});
});
ページ の
のグループはurlパラメータを してページをまたいでデータを します.コアコードは の りです.
の のトリガー をクリックして、urlにパラメータを します.function myonclickhrf(myid) {
let myname = $('.ysj-login-name').html();
if(myname){
window.location.href = "/moviecontain.html?id="+myid+"&name="+myname
}else {
window.location.href = "/moviecontain.html?id="+myid+"&name="
}
}
ここで、パラメータmyidは、バックグラウンドからのユーザIDであっても いし、htmlから したユーザIDであっても いし、 によっては なる.
urlパラメータを り し、パラメータが する はユーザ をパラメータで し、 しない は を します.let myurl = window.location.href.split("?id=");
myurl = [myurl[1].split('&name=')[1], myurl[1].split('&name=')[0]];
if (myurl[0]) {
$('.ysjLogin').html(" " + myurl[0]);
} else {
bootbox.alert(" , !");
$('.ysjLogin').html(" , !");
}
urlパラメータでユーザー を することができます.
がのびる
その のページ メッセージング ウィンドウオブジェクトのメッセージイベントで を する.
window.addEventListener('message',functio(){},false);
otherwindow.postMessage(message,targetOrigin);
message , javascript
targetOrigin url
other Windowは、ウィンドウオブジェクトの を するために、window.openを してオブジェクトに すことができます.または、window.frame に または を することによって、 のframeが するウィンドウオブジェクトに ります.
gitを ったチームワークについて
え :
ローカル にはマスターとAnother(カスタム)の があります.リモート にもmasterとanotherの があります.なぜ たちは つの が ですか? のマスターで をするなら、リモート に する にチームメイトが しいコードを したら、 のマスターで します.(あなたが えたもの )コードはリモート のコードと って、gitはプッシュできないと します.そして、Pullを します.しかし、git pullを すると、またローカル のコードがリモート のコードを えていると します.チームメイトが する にリモートマスターのコードではなく、 が します.したがって、まずローカルのanotherで し、ローカルのmasterコードを する があります. のリモートmasterコードです. ができたら、ローカルのanotherをリモートのanotherに して、リモートのanotherとリモートのmasterを させて、git purl orgin masterを ってリモートのmasterをローカルのマスターに っ ります.
(まとめ:ローカルマスターはリモートの バージョンです. のバージョンは しません.)
ステップ: git checkout-b another(ローカルanotherのブランチを し、anotherのブランチに る) git add filePath( をローカル another のキャッシュエリアに ) git comit-m'text'(addの をローカル のanotherの に する) git checkout master(anotherから してローカルマスターに る) git pull origgimaster git checkout another(ローカルマスターからローカルanotherに ) git rebase master( 5ステップのコードとローカルマスターの をリセットベースに ) で を します. git psh origgin another(ローカルのanotherをリモートのanotherに させる)( な :git push origgin another:anotherは しないでください.あなたの はまだ されていません.githubは に します.) purl requestをクリックして(リモート インターフェースで の に り、リモートmasterに してください) コードを し、コードを し、マスター に させる.
に る