2014-10-17 61 views
0

我想集成選擇(jQuery插件)與AngularJS,但我不能讓它填充選擇中的任何選項。集成選擇到AngularJS

我開始學習本教程:

http://onehungrymind.com/angularjs-chosen-plugin-awesome/

和(從 'Chosen Angular directive doesn't get updated' 的幫助)創造了這個簡單的例子:

http://plnkr.co/edit/BzLAdotxKVI15t5phNAA?p=preview

module.directive('chosen', function(){ 

var directive = {}; 

    directive.restrict = 'A'; 


    directive.link = function(scope, element, attrs) { 

     var list = attrs['chosen']; 

     scope.$watch(list, function() { 
      element.trigger('chosen:updated'); 
     }); 

     scope.$watch(attrs['ngModel'], function() { 
      element.trigger('chosen:updated'); 
     }); 

     element.chosen(); 
    }; 

    return directive; 
}); 

這不會報錯但不會向列表添加任何內容。如果我從select中刪除「selected」屬性,它會按預期工作,所以我知道這不是綁定的問題。

我然後使用角挑選的包裝嘗試:

https://github.com/localytics/angular-chosen (在這個問題中引用 - Angular.js Chosen integration和(可能)AngularJS Chosen not working/updating

和創建此: http://plnkr.co/edit/NmQiDgU1xOK8l9MtTcjS?p=preview

其具有同樣的問題。

UPDATE 針對何塞米 - 我看着UI的選擇,但它需要大量的(不是直觀的)的標記,而不是僅僅一個屬性的,所以我排除它。

UPDATE 針對** ** jd17工作plunkr從下面的答案: http://plnkr.co/edit/2v3BWVL0xFgQVce0MPXR?p=preview

+0

這看起來很像選擇二一個,且已經存在於角UI的angularjs實施,檢查UI的選擇:https://github.com/angular-ui/ui-select – JoseM 2014-10-17 13:48:28

+0

我看着UI選擇,但決定它不是真的我想要的 - 我已經更新了這個問題,爲什麼 – SturmUndDrang 2014-10-17 14:28:54

回答

1

在你app.js,你爲什麼要重新定義「選擇」指令,因爲你正在使用的角選擇插件?
我修改你的app.js在你的第二個plnkr如下,事情效果很好。

var app = angular.module('myApp',['localytics.directives']); // inject the chosen 

app.controller('TestController', ['$scope','$http', 
function TestController($scope,$http){ 

    $scope.url = 'testValues.json'; 
    $scope.wordList = []; 
    $scope.selectedWord = {}; 

    $scope.loadWords = function(){ 
    $http.get($scope.url).then(function(result){ 
     $scope.wordList = result.data; 
    }); 
    }; 

    $scope.loadWords(); 
} 
]); 
+0

我複製了原始的PLUNK - 所以我忘了刪除我的「選擇」指令。現在效果很好 - 謝謝! (我已經更新了問題底部的第二個plunkr) – SturmUndDrang 2014-10-17 14:44:34