AngularJS REST Api Select box ng-change

AngularJS REST Api Select box ng-change

我正在从外部 url 将数据加载到 select 框中。问题是 ng-change 根本没有被触发。但是,如果我创建一个本地数组,它就可以工作!!我想根据 selection 更新主 url。

但是我注意到,选项的 'value' 字段是 'undefined',但是 select 框填充了 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('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 标签吗?

<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_)? for (_key_,)?_value_ in _collection_

您正确地传递了 label,但没有传递 select。所以 post.path 没有正确加载。