2015-02-11 63 views
0

在angularjs,而是結合數據的NG-單擊在最初下拉列表(例如爲:通過控制器$ scope.items分配值),我需要在下拉列表綁定下拉單擊事件。下拉不上正確地綁定AngularJS

我厭倦了NG單擊事件,但它不能正常工作,考慮代碼

我的問題:當我執行我的代碼

第1步:第一次點擊下拉列表不顯示數據列表

第2步:第二次單擊下拉菜單現在它顯示數據列表

是新的angularJS,我不知道如何解決這個簡單的問題。

<!DOCTYPE html> 
    <html> 
    <head> 
     <title></title> 
     <script src="angular.min.js"></script> 
     <script> 

      var myApp = angular.module('myApp', []); 

      myApp.controller('MyCtrl', function ($scope) { 
       var countryds = [ 
        { 'name': 'India' }, 
        { 'name': 'Pakistan' }, 
        { 'name': 'Afganistan' } 
       ]; 
       $scope.my = { favorite: '' }; 
       $scope.items = ''; 
       $scope.binddropdown = function (element) { 
        element.items = countryds; 
       } 
      }); 
     </script> 
    </head> 
    <body> 
     <div ng-app="myApp" ng-controller="MyCtrl"> 
      <select ng-model="my.favorite" ng-options="i.name for i in items" ng-click="binddropdown(this)"> 
       <option value="">Select Country</option> 
      </select> 
     </div> 
    </body> 
    </html> 
+0

似乎工作正常http://jsfiddle.net/orveo3ao/ – 2015-02-11 07:46:59

+0

請注意,第一次點擊下拉不填充列表項是問題 – ipln 2015-02-11 07:50:28

+0

不知道你的意思。它確實是我第一次點擊下拉列表。 – 2015-02-11 07:53:44

回答

0

將您的代碼在頁面的底部,像這樣:

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
    <script src="angular.min.js"></script> 
</head> 
<body> 
    <div ng-app="myApp" ng-controller="MyCtrl"> 
     <select ng-model="my.favorite" ng-options="i.name for i in items" ng-click="binddropdown(this)"> 
      <option value="">Select Country</option> 
     </select> 
    </div> 

    <script> 

    var myApp = angular.module('myApp', []); 
     myApp.controller('MyCtrl', function ($scope) { 
      $scope.countries = [ 
       { 'name': 'India' }, 
       { 'name': 'Pakistan' }, 
       { 'name': 'Afganistan' } 
      ]; 
      $scope.my = { favorite: '' };    
     }); 

    </script> 
</body> 
</html> 

因爲你正在運行的角度代碼,並結合其在這一點上沒有在DOM甚至創建的元素。可能是因爲有一些緩存機制 - 代碼第二次運行,但這不是你想要做的。

編輯:我更新了腳本。

+0

感謝您的快速支持,當我點擊下拉第一次需要顯示數據列表..即使我厭倦了你的代碼我得到同樣的問題。 – ipln 2015-02-11 07:38:04

+0

我更新了它 - 現在它應該工作:http://jsfiddle.net/358uqccy/1/ – 2015-02-11 07:50:11

+0

根據我的情況,而不是綁定到最初的下拉數據(例如:通過控制器$ scope.items分配值) ,我需要在下拉單擊事件中綁定下拉菜單。 – ipln 2015-02-11 07:53:40