0

我在一个地方定义了所有控制器。

 $routeProvider.when(pages.hello, 
    {
      templateUrl: 'test/hello.html', 
      controller: 'myController',
      access: access.anon,
      helloPage: 'arf'
    });

我的 hello.html 看起来像这样。

<select name="chooseFunc" data-ng-model="choosenFunction"  class="input-xlarge ng-pristine ng-valid" data-ng-click="fetchID()"  data-ng-change="update(choosenFunction)">
            <option value="ABCD">ABCD</option>
            <option value="CDEF">CDEF</option>            
        </select> 

现在我想调用一个http get方法“/abc/hello”来填充下拉菜单,如ABCD,CDEF值基于它。

我写过这样的东西。

 $scope.fetchID = function() {
        console.log("hello in fectch id"); 
        $http.get('/abc/hello').success(successCallback).error(error);        
      };

我的函数没有被调用。可以帮助我解决以下问题。

  1. 在页面加载时调用 fecthID() 函数。
  2. fechID() 函数应该填充选择元素中的选项。

我刚来这地方。有人能帮我吗。

4

2 回答 2

1

我会写控制器,如:

function myController($scope,$http) {

    $scope.values = [{id:"ABCD",Name:"David"},{id:"CDEF",Name:"John"}];

    $scope.selectedItem = $scope.values[0].id;

     $scope.fetchID = function() {

        $http.get('/abc/hello').success(
            function(data, status, headers, config){
                $scope.values.push(data);// play here
            }) 
        .error(error);          
      };

 $scope.fetchID(); // call
}

hello.html使用 init first 组合值:

   <select name="chooseFunc"        
    ng-model="selectedItem"        
     ng-options="selectedItem.id as selectedItem.id for selectedItem in values"          
     class="input-xlarge ng-pristine ng-valid"          
     data-ng-click="fetchID()"          
      data-ng-change="update(choosenFunction)"          
      ></select>
于 2013-11-13T08:58:15.413 回答
1

您可以使用ng-options填充选择喜欢

<select ng-model="mySelecetdValue" ng-options="item for item in items">
</select>

打电话fecthID(),就像这样称呼它

$scope.fetchID()

items并在successCallback函数中填充

于 2013-11-13T08:35:09.280 回答