显示来自 ngcontroller 别名的 ngrepeat 属性
Display attribute of ngrepeat from ngcontroller alias
没有 ngcontroller 别名,我可以获取数据。但是,当使用别名时,我不能。我这里有什么错误?
HTML 标签:
<div style="padding: 10px" id="content_dv" ng-controller="displaytopic_ctrl as f">
<div class="topic_dv" ng-repeat="t in f.topic">
<p>{{ t.MEMBER_NAME }}</p>
</div>
</div>
在app.js中:
.controller('displaytopic_ctrl', ['$http', function($http) {
$http({
method: 'get',
url: api_url + 'get_topic_list.php',
data: {
type: 'all'
}
}).success(function(d){
if(d.t=='p'){
this.topic = d.topic;
}
}).error(
function(){
console.log('Query error');
});
}]);
由于方式 JavaScript closures work,您在成功回调 中使用的 this
变量不是 控制器。解决这个问题最常用的机制是为控制器创建一个别名,您可以在回调中引用它。
例如:
.controller('displaytopic_ctrl', ['$http',
function($http) {
var controller = this;
$http({
method: 'get',
url: api_url + 'get_topic_list.php',
data: {
type: 'all'
}
}).success(function(d) {
if (d.t == 'p') {
controller.topic = d.topic;
}
}).error(
function() {
console.log('Query error');
});
}
]);
没有 ngcontroller 别名,我可以获取数据。但是,当使用别名时,我不能。我这里有什么错误?
HTML 标签:
<div style="padding: 10px" id="content_dv" ng-controller="displaytopic_ctrl as f">
<div class="topic_dv" ng-repeat="t in f.topic">
<p>{{ t.MEMBER_NAME }}</p>
</div>
</div>
在app.js中:
.controller('displaytopic_ctrl', ['$http', function($http) {
$http({
method: 'get',
url: api_url + 'get_topic_list.php',
data: {
type: 'all'
}
}).success(function(d){
if(d.t=='p'){
this.topic = d.topic;
}
}).error(
function(){
console.log('Query error');
});
}]);
由于方式 JavaScript closures work,您在成功回调 中使用的 this
变量不是 控制器。解决这个问题最常用的机制是为控制器创建一个别名,您可以在回调中引用它。
例如:
.controller('displaytopic_ctrl', ['$http',
function($http) {
var controller = this;
$http({
method: 'get',
url: api_url + 'get_topic_list.php',
data: {
type: 'all'
}
}).success(function(d) {
if (d.t == 'p') {
controller.topic = d.topic;
}
}).error(
function() {
console.log('Query error');
});
}
]);