Angularjs 在'中使用ng init的替代方案;查看';?
我正在尝试为我的应用程序创建一个“like”功能。我希望能够将动态生成的数字的值设置为“like count”。问题在于使用“ng init”,因为文档中说这是一种不好的方法 如何在“控制器”而不是“视图”中设置值 以下是我到目前为止的情况:Angularjs 在'中使用ng init的替代方案;查看';?,angularjs,Angularjs,我正在尝试为我的应用程序创建一个“like”功能。我希望能够将动态生成的数字的值设置为“like count”。问题在于使用“ng init”,因为文档中说这是一种不好的方法 如何在“控制器”而不是“视图”中设置值 以下是我到目前为止的情况: 安古拉斯普朗克 文件。写(“”); {{feed.createdby}} {{feed.content} {{isLiked[$index]| liked} {{likeCount}} 谢谢 改变一下 `{{likeCount}` `{{feed.
安古拉斯普朗克
文件。写(“”);
{{feed.createdby}}
{{feed.content}
{{isLiked[$index]| liked}
{{likeCount}}
谢谢
改变一下
`{{likeCount}`
`{{feed.likes.length}}`。
如果出于其他原因(我看不到),您仍然需要控制器中的计数,请创建一个控制器,让我们假设FeedCtrl
,并将其添加到您的文章中:
...
{{likeCount}}
您的FeedCtrl将是:
函数FeedCtrl($scope){
$scope.$watch('feed.likes.length',函数(newValue){
$scope.likeCount=newValue;
});
}
另一种方法是创建函数来解析值:
...
{{likeCount()}}
函数FeedCtrl($scope){
$scope.likeCount=函数(){
返回$feed&$feed.likes?$feed.likes.length:未定义;
};
}
如果您的提要对象/数组很长,出于性能原因,最好使用ng bind
<span ng-bind="likeCount"></span>
谢谢你的回复。我更喜欢第二种方法,我已经把它扔进了垃圾桶:对不起,我的错。这是$scope.feed
。固定的。还请注意我首先错过的返回
。不用担心。我已经把它扔回了Plunker,但仍然无法让它返回值。每次我尝试使用$scope.feed.likes方法检索任何内容时,都会遇到这个问题。它将返回$scope.feed,只是不喜欢“喜欢”!即使我尝试这样做:$scope.likeCount=function(){return$scope.feed&&$scope.feed.likes?$scope.feed.likes.length:undefined;};-没有返回任何内容。两个问题:您编写了$feed
,而不是$scope.feed
。您忘记了创建新控制器的部分,即FeedCtrl
。看一看。最后,我可能会将像Clicked一样的移动到FeedCtrl
。
{{likeCount}}