Привет, я новичок в angulajs и javasript, и я делаю демонстрацию pushpage
значений в функции pushpage
onsen ui. Мне удалось передать только одно значение в push-странице, но пока я пытаюсь передать два значения, которые он не передает, так может кто-нибудь, пожалуйста, помогите мне решить эту проблему, я пробовал, как показано ниже:
(внутренний контроллер)
var Content = ' ';
var resid = ' ';
var catname = ' '
var options,
elem,
obj = {};
for (i = 0 ; i< data ['Details'].length ; i++)
{
resid= + data['Details'][i]['intGlCode'] ;
catname = data['Details'][i]['varName'];
obj['params'] = resid;
obj['params1'] = catname;
options = JSON.stringify(obj);
console.log(options);
elem = "<li class='list__item list__item--chevron' onclick=gallery.pushPage('list-page.html', "+options+");>";
console.log(elem);
if (Content === ' ')
{
//{params:'+resid+',params1 : '+catname+'}
Content =elem+
// '<li class="list__item list__item--chevron" onclick=gallery.pushPage("list-page.html", { params: '+resid+' });>'+
'<ons-icon class="ons-icon ons-icon--ion ion-android-restaurant fa-lg" fixed-width="true" icon='+data['Details'][i]['varIcon']+'>'+'</ons-icon>'
pushPage()
необходимо создать объект параметра pushPage()
используя нотацию скобки, которая позволяет вводить значения атрибутов. O После создания объекта вы можете разобрать это как строку, которую вы объединяете с строкой в контроллере. Ниже показано это
var options,
elem,
obj = {},
resid = 'foo',
catname = 'bar';
obj['params'] = resid;
obj['params1'] = catname;
options = JSON.stringify(obj);
console.log(options);
elem = "<li class='list__item list__item--chevron' onclick=gallery.pushPage('list-page.html', "+options+");>";
console.log(elem); /* prints <li class='list__item list__item--chevron' onclick=gallery.pushPage('list-page.html', {"params":"foo","params1":"bar"});> */
Проверьте демонстрационную версию ниже.
var options,
elem,
obj = {},
resid = 'foo',
catname = 'bar';
obj['params'] = resid;
obj['params1'] = catname;
options = JSON.stringify(obj);
console.log(options);
elem = "<li class='list__item list__item--chevron' onclick=gallery.pushPage('list-page.html', "+options+");>";
pre.innerHTML = elem;
<pre id="pre"></pre>
SyntaxError: missing ) after argument list gallery.pushPage('list-page.html'
..pls смотрите мое обновление по вопросу.
... onclick=gallery.pushPage('list-page.html' "+options+");>";
должно быть ... onclick=gallery.pushPage('list-page.html', "+options+");>";
Я делаю это, чтобы поместить его в значение параметра. Обратите внимание, что вам нужен файл php, который предоставляет данные json.
Первая страница
<ons-row ng-click="myNavigator.pushPage('page2.html', {param1: x.param1, param2: x.param2})">
<ons-col width="35px">
<i class="fa fa-stethoscope fa-2x" aria-hidden="true"></i>
</ons-col>
<ons-col>
<div class="timeline-from">
<span class="timeline-name">{{ x.param1 }}</span>
</div>
</ons-col>
</ons-row>
и на контроллере
//Pushed Page Controller
app.controller('PushedPageController', function($scope){
var options = $scope.myNavigator.getCurrentPage().options;
$scope.x = options.param1;
$scope.options = options;
})
и на стр.2.html
<ons-list class="timeline" modifier="inset" ng-controller="PushedPageController">
<ons-list-item class="timeline-li" modifier="tappable" ng-repeat="a in x">
<ons-row>
<ons-col>
<div class="timeline-from">
<span class="timeline-name">{{ a.first }}</span>
</div>
<div class="timeline-message" >
{{ a.second }}
</div>
</ons-col>
</ons-row>
</ons-list-item>
</ons-list>