我正在尝试将迄今为止我学到的关于AngularJS的一点点用于使用JQuery Mobile渲染的简单移动应用程序。我已经研究过Angular Mobile,但是由于Angular还很年轻,所以没有找到太多有用的文档或成熟的库。无论如何,我的问题是我在点击listItem时尝试加载一个对象,但它看起来甚至看起来像ng-click指令实际上正在做任何事情。我甚至尝试过登录到控制台以显示它实际上是在触发,但没有骰子。
这是我到目前为止所拥有的。
模板:
<div data-role="page" id="mushroom-list" ng-controller="MushroomListCtrl">
<div data-role="content" >
<ul data-role="listview" data-divider-theme="b" data-inset="true" class="mushrooms">
<li data-theme="c" ng-repeat="mushroom in mushrooms | filter:query | orderBy:orderProp">
<a href="#mushroom-detail" data-transition="slide" ng-click="selectMushroom({{mushroom._id}})" value="{{mushroom._id}}">
{{mushroom.variety}}
</a>
</li>
</ul>
</div>
</div>
控制器:
function MushroomListCtrl($scope, Mushroom) {
$scope.mushrooms = Mushroom.query();
$scope.selectMushroom = function (id) {
$scope.mushroom = _.where($scope.mushrooms, {_id: id})[0];
}
}
gardenApp.controller('MushroomListCtrl', ['$scope', 'Mushroom', MushroomListCtrl])
我不确定它是否与JQuery Mobile发生冲突,或者我只是在展示我使用AngularJS的多少菜鸟。任何人都可以清楚地知道为什么当我点击链接时,selectMushroom()函数似乎没有评估。我现在看起来已经高低两天了,这有点令人沮丧。此外,我目前正在使用AngularJS 1.0.2,jQuery 1.9.1和jQuery Mobile 1.3.1。我还尝试添加最新版本的angular-mobile-nav和ng-mobile.js,希望能解决这个问题。但显然它没有。
答案 0 :(得分:1)
你可以让两者一起工作,但也存在一些问题。查看此网站以获得更好的解释。
http://simonguest.com/2013/04/08/jquery-mobile-and-angularjs-working-together/
此外,我认为您需要从点击事件中删除{{}}。试试这个;
ng-click="selectMushroom(mushroom._id)"
答案 1 :(得分:1)
好的我想出来了。首先,我将ng-controller指令移动到body标签,并从页面的div标签中删除了声明。然后我在模板和控制器中用.id替换了._id,并且它有效。
模板
<body ng-controller="MushroomListCtrl">
<div data-role="page" id="mushroom-list" >
<div data-role="content" >
<ul data-role="listview" data-divider-theme="b" data-inset="true" class="mushrooms">
<li data-theme="c" ng-repeat="mushroom in mushrooms | filter:query | orderBy:orderProp">
<a href="#mushroom-detail" data-transition="slide" ng-click="selectMushroom(mushroom.id)" value="{{mushroom.id}}">
{{mushroom.variety}}
</a>
</li>
</ul>
</div>
</div>
</body>
控制器
function MushroomListCtrl($scope, Mushroom) {
$scope.mushrooms = Mushroom.query();
$scope.selectMushroom = function (id) {
$scope.mushroom = _.where($scope.mushrooms, {id: id})[0];
}
}
答案 2 :(得分:0)
请查看使用ng-href链接到您的数据,以及路由,例如:
$scope.mushroom_detail = DataService.mushrooms[$routeParams.id];
和你的html链接:
<a ng-href="/#/mushroom/{{mushroom.id}}">{{mushroom.name}}</a>
输出:
{{mushroom_detail.interesting_facts}}