Angularjs 为什么可以';t获取存储在控制器变量中的值
这是我的控制器:Angularjs 为什么可以';t获取存储在控制器变量中的值,angularjs,model-view-controller,Angularjs,Model View Controller,这是我的控制器: (function(){ 'use strict'; angular .module('app') .controller('HomeController', ['Factory', HomeController]); function HomeController(Factory){ var result = Factory.query(); t
(function(){
'use strict';
angular
.module('app')
.controller('HomeController', ['Factory',
HomeController]);
function HomeController(Factory){
var result = Factory.query();
this.model = result[0];
}
})();
在视图中,我通过这样做获得值
div(ng-controller='HomeController as HomeCtrl')
h3{{HomeCtrl.model}}
问题是我没有得到任何价值。我完全确定该值是从工厂返回的,因为我已经测试了factory.query()并得到了结果。事实上,如果我按照以下方式执行操作,并通过执行HomeCtrl.result[0]在视图中获取值,我就会得到结果
(function(){
'use strict';
angular
.module('app')
.controller('HomeController', ['Factory',
HomeController]);
function HomeController(Factory){
this.result = Factory.query();
}
})();
您应该使用$scope将数据传递给视图。这样,Angular将绑定数据,并在范围变量更改时自动更新视图(由于异步调用,视图呈现时模型变量可能不可用)。试着这样做: 控制器
$scope.model = result[0];
看法
您应该使用$scope将数据传递给视图。这样,Angular将绑定数据,并在范围变量更改时自动更新视图(由于异步调用,视图呈现时模型变量可能不可用)。试着这样做: 控制器
$scope.model = result[0];
看法
您应该使用$scope将数据传递给视图。这样,Angular将绑定数据,并在范围变量更改时自动更新视图(由于异步调用,视图呈现时模型变量可能不可用)。试着这样做: 控制器
$scope.model = result[0];
看法
您应该使用$scope将数据传递给视图。这样,Angular将绑定数据,并在范围变量更改时自动更新视图(由于异步调用,视图呈现时模型变量可能不可用)。试着这样做: 控制器
$scope.model = result[0];
看法
工厂的查询方法无疑是一种异步方法,它会立即返回一个空数组,但只有在异步查询的结果可用时(例如,当它从AJAX请求获得响应时)才会填充它: 因此,由于您的控制器不等待查询结果,因此它将当前未定义的
结果[0]
分配给其模型
变量
第二种方法是有效的,因为在这种情况下,一旦收到对异步请求的响应,视图就会重新呈现自己,因此它会重新评估
结果[0]
,其中包含从AJAX请求接收的元素。,工厂的查询方法无疑是一种异步方法,它会立即返回一个空数组,但仅在异步查询的结果可用时(例如,当它从AJAX请求获得响应时)才会填充它:
因此,由于您的控制器不等待查询结果,因此它将当前未定义的结果[0]
分配给其模型
变量
第二种方法是有效的,因为在这种情况下,一旦收到对异步请求的响应,视图就会重新呈现自己,因此它会重新评估
结果[0]
,其中包含从AJAX请求接收的元素。,工厂的查询方法无疑是一种异步方法,它会立即返回一个空数组,但仅在异步查询的结果可用时(例如,当它从AJAX请求获得响应时)才会填充它:
因此,由于您的控制器不等待查询结果,因此它将当前未定义的结果[0]
分配给其模型
变量
第二种方法是有效的,因为在这种情况下,一旦收到对异步请求的响应,视图就会重新呈现自己,因此它会重新评估
结果[0]
,其中包含从AJAX请求接收的元素。,工厂的查询方法无疑是一种异步方法,它会立即返回一个空数组,但仅在异步查询的结果可用时(例如,当它从AJAX请求获得响应时)才会填充它:
因此,由于您的控制器不等待查询结果,因此它将当前未定义的结果[0]
分配给其模型
变量
第二种方法是有效的,因为在这种情况下,一旦收到异步请求的响应,视图就会重新呈现自身,因此它会重新评估
结果[0]
,其中包含从AJAX请求接收的元素。因为您希望在填充数组的第一个元素后获取该元素,您可以在回调中执行此操作:
Factory.query(function(result) {
this.model = result[0];
});
由于您希望在填充数组后获取数组的第一个元素,因此可以在回调中执行此操作:
Factory.query(function(result) {
this.model = result[0];
});
由于您希望在填充数组后获取数组的第一个元素,因此可以在回调中执行此操作:
Factory.query(function(result) {
this.model = result[0];
});
由于您希望在填充数组后获取数组的第一个元素,因此可以在回调中执行此操作:
Factory.query(function(result) {
this.model = result[0];
});
你能把工厂的代码贴出来吗?看起来你在如何传递数据以及如何期望数据被传递方面有问题。你能发布工厂代码吗?看起来你在如何传递数据以及如何期望数据被传递方面有问题。你能发布工厂代码吗?看起来你在如何传递数据以及如何期望数据被传递方面有问题。你能发布工厂代码吗?似乎您在如何传递数据以及希望如何传递数据方面存在问题。OP使用
控制器作为
语法,将控制器本身绑定到作用域。奇怪的是,如果我使用result[0],它不起作用,而当我使用result时,它起作用,但我完全确定我得到了一个数组OP使用控制器作为
语法,它将控制器本身绑定到作用域。奇怪的是,如果我使用result[0],它不起作用,而当我使用result时,它起作用,但我完全确定我得到了一个数组OP使用控制器作为
语法,它绑定了控制器