AngularJS ChosenJS ng-disabled无效

时间:2014-04-07 06:42:15

标签: angularjs jquery-chosen

我有类似的代码

选择

<select data-placeholder="Product" class="span4 chzn-select"
    chosen="productsList" ng-model="selectedproduct"
    ng-options="product.productName for product in productsList"
    ng-change="fetchProductItems();"
    ng-disabled="lock">
</select>

调用该功能的按钮

<button class="btn" ng-click="searchProduct();">Seach Product</button>

最后功能

$scope.searchProduct = function() {
    $scope.lock =true;
}

问题是它没有禁用选择。

2 个答案:

答案 0 :(得分:3)

我已经测试了你的代码,一切正常,所以有两个可能的问题:

A)控制器以某种方式未连接到视图或某些语法错误(检查控制台窗口是否存在可能的错误)。

B)可能是浏览器兼容性问题,但我在IE 10,Chrome和FF 27.0.1上进行了测试。

HTML:

<div ng-app="App"  ng-controller="ctrl">
 <select data-placeholder="Product" class="span4 chzn-select"
    chosen="productsList" ng-model="selectedproduct"
    ng-options="product.productName for product in productsList"
    ng-change="fetchProductItems();"
    ng-disabled="lock">
</select>
<button class="btn" ng-click="searchProduct()">Seach Product</button>
</div>

JS:

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

function ctrl($scope){
    $scope.productsList=[{id:1,productName:"aa"},{id:2,productName:"bb"},{id:3,productName:"cc"}]
    $scope.searchProduct = function() {
    $scope.lock =true;
    }  
}

实例:http://jsfiddle.net/choroshin/sJZf7/

答案 1 :(得分:1)

我刚好发现一切都很好但是视图(具有ng-disabled="..."属性)被缓存了,因此属性ng-disabled="..."实际上并没有被带到视图中。

所以...删除你的缓存,然后再试一次。