更新模型中的数据不会绑定到控制器
Updating Data In Model Not Binds To Controller
我正在尝试在我的应用程序中遵循这种模式,但是我无法让它工作。
国家型号.js
app.service('CountriesModel', ['$http',
function($http) {
$http.get(baseUrl + 'api/countries').success(function(data) {
this.countries = data;
});
}]);
用户控制.js
app.controller('UserCtrl', ['$scope', 'CountriesModel',
function($scope, CountriesModel) {
$scope.CountriesModel = CountriesModel;
}]);
用户.html
<select ng-options="country.iso2 as country.short_name for country in CountriesModel.countries" ng-model="selectedCountry"></select>
现在在 AngularJs 检查器插件中,我可以看到CountriesModel
内部的countries
正确获取,但仍然undefined
UserCtrl
内部的$scope.CountriesModel
,select
仍然是空的......
所以这很简单,但我花了几个小时试图解决它......
这不是 AngularJs 问题,而是 JavaScript 闭包问题,
以下解决了我的问题,
app.service('CountriesModel', ['$http',
function($http) {
$http.get(baseUrl + 'api/countries').success(function(data) {
this.countries = data;
}.bind(this));
}]);
相关文章:
- ng绑定和ng href问题.ng href未从控制器加载数据
- 将指令绑定到控制器属性
- 当显式定义控制器参数时,默认模型绑定器会发生异常
- AngularJS 1.5.x服务未正确绑定,并且未在控制器中更新
- 将角度材质设计复选框绑定到控制器中的数组
- 在将绑定应用于控制器之后,是否会发出Angular$scope事件
- Ember.js:将Em.$.getJSON转换为promise并将响应绑定到控制器上下文的正确方法
- 同一页面上两个不同控制器的Angularjs双向绑定字段
- 角度控制器不绑定服务对象属性 ng-repeat
- 在 AngularJS 中将数据从视图绑定到控制器
- 工厂和控制器之间的“绑定”
- 无法绑定到没有指令 + angularjs 标识符的控制器
- AngularJS路由未绑定控制器
- 如何将值与$scope绑定,以从定义状态ui路由器的控制器中使用ng模型进行查看
- 角度指令单向绑定控制器中的变化值
- Angular 1.5:访问控制器内部的绑定控制器属性
- 角度指令:范围与绑定控制器
- AngularJS中包含HTML的绑定控制器属性
- 通过ng-controller动态绑定控制器
- AngularJS一次性绑定控制器变量