我正在从外部 URL 将数据加载到选择框中。问题是 ng-change 根本没有被触发。但是,如果我创建一个本地数组,它就可以工作!我想根据选择更新主网址。
但是我注意到,选项的“值”字段是“未定义”,但选择框会填充 post.site_name。
HTML:
<select ng-options="site_name as post.site_name for post in posts"
ng-model="something" ng-change="updatee(post.path)">
<option>Select</option>
</select>
Controller :
.controller('HotelCtrl', function( $scope, $http, DataLoader, $timeout, $rootScope, $log )
{
var postsApi = 'http://my_URL';
$scope.updatee = function(newLink) {
console.log('works');
$rootScope.url = newLink;
};
$scope.loadPosts = function() {
DataLoader.get( postsApi ).then(function(response) {
$scope.posts = response.data;
}, function(response) {
$log.error('error', response);
});
}
$scope.loadPosts();
})
服务:
.factory('DataLoader', function( $http, $log ) {
return {
get: function(url) {
// Simple index lookup
return $http.get( url );
}
}
})
我已经这样做了至少一天了,并且快要疯了......感谢任何帮助。 谢谢
最佳答案
你可以试试这个选择标签吗?
<select ng-options="post.site_name as post.site_name for post in posts"
ng-model="something" ng-change="updatee(post.path)">
ng-options 语法是 select_ (as _label_)?对于 _collection_ 中的 (_key_,)?_value_
您正确传递了label
,但没有正确传递select
。因此 post.path
未正确加载。
关于AngularJS REST Api 选择框 ng-change,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35753796/