ToDate(1388481000000)
未显示,但如果未使用span
,则会显示li
标记中的按钮,但是一旦我使用ng-repeat
,则ng-repeat
也没有显示按钮。
我曾多次使用span
但从未遇到过这种情况,如果我在ng-repeat
代码中使用span
,则不会显示ng-repeat
和按钮元素。
这是 index.html 文件:
li
这是 controller.js 文件
<ul id="contactdelete">
<li ng-repeat="contact in $ctrl.contacts">
<span>{{contact.name}}</span>
<button ng-click="$ctrl.deletecontact()">Delete</button>
</li>
</ul>
答案 0 :(得分:1)
this.contacts
为空,因为success
回调是异步的,其上下文与构造函数不同,这就是您无法直接使用this
的原因。
此外,您应该使用then
函数,该函数将2个函数作为参数,一个用于成功,另一个用作错误回调。
解决此问题的一种方法是使this
成为局部变量,然后在回调中使用它。
var self = this;
$http.get("/api/contacts/").then(function(response){
self.contacts = response; // or response.data, depending of what you're receiving.
});
或者您可以使用bind
功能:
$http.get("/api/contacts/").then(function(response){
this.contacts = response;
}.bind(this)); // notice the bind here
Angular提供了自己的bind
实现:
$http.get("/api/contacts/").then(angular.bind(this, function(response){
this.contacts = response;
}));
关于范围和背景的其他信息:
答案 1 :(得分:0)
您应该将this.contacts = result;
移至内部成功功能:
$http.get("/api/contacts/").success(function(response){
result = response;
this.contacts = result;
});
我认为您必须使用result = response.data
代替result = response