我正在MEANJS上构建一个应用程序。以下是我的观点:
<section data-ng-controller="PostsController" data-ng-init="findOne()">
...
<span data-ng-controller="FavsController" ng-init="isFaved(post._id)">
<button type="button" ng-hide="faved[post._id]"></button>
</span>
...
</section>
这是我的函数FavsController
:
$scope.isFaved = function(postId) {
console.log(postId);
// other stuff. create an array named faved etc.
};
问题是,post._id
以undefined
传递给函数。但是当我在我的视图中说{{ post._id }}
时,它会打印当前的帖子ID,无论html在哪里。当我通过键入提供帖子ID(我的意思是isFaved(123)
)时,它正在工作,内部按钮的ng-hide
也正常工作。我正在使用相同的html
和相同的js
以及其他一些视图,但只有这一个会引发错误。任何想法为什么会发生这种情况?
答案 0 :(得分:0)
ng-init非常适合预先设定值,旨在用于ng-repeat内的别名属性。
你真正想要的是将函数调用绑定到适当的事件,如...
ng-click="isFaved(post._id)"
或者初始化控制器中的值或变量,以便确保它们与值一起存在。在这种情况下使用ng-init并不是真正意图如此,所以你可以期待意外。