我试图将Chosen(jquery插件)与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的属性,它按预期工作,所以我知道它不是绑定的问题。
然后我尝试使用角度选择的包装器:
https://github.com/localytics/angular-chosen (在此问题中引用 - Angular.js Chosen integration和(可能)AngularJS Chosen not working/updating)
并创建了这个: http://plnkr.co/edit/NmQiDgU1xOK8l9MtTcjS?p=preview
哪个问题相同。
更新 为了回应 Jose M - 我看了ui-select,但它需要很多(不直观)标记而不仅仅是属性,所以我排除了它。
更新 回答** jd17 * - *来自以下答案的工作人员: http://plnkr.co/edit/2v3BWVL0xFgQVce0MPXR?p=preview
答案 0 :(得分:1)
在你的app.js中,为什么你重新定义了“选择”指令,因为你正在使用Angular Chosen插件?我在你的第二个plnkr中修改了你的app.js,如下所示,事情很顺利。
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();
}
]);