Javascript Angularjs将jquery插件转换为指令
我试图在angularjs中使用它,并将其放入指令中。我遇到的问题是,当复选框默认为选中时,我必须“双击”。当在指令之外本机使用时,不会发生这种情况,因此我假设我对指令做了一些错误的操作 这是我的代码,是否有任何指令看起来不合适或缺失的地方Javascript Angularjs将jquery插件转换为指令,javascript,angularjs,Javascript,Angularjs,我试图在angularjs中使用它,并将其放入指令中。我遇到的问题是,当复选框默认为选中时,我必须“双击”。当在指令之外本机使用时,不会发生这种情况,因此我假设我对指令做了一些错误的操作 这是我的代码,是否有任何指令看起来不合适或缺失的地方 angular.module('directives', []).directive('ccCheckbox', function () { 'use strict'; return { require: '?ngModel
angular.module('directives', []).directive('ccCheckbox', function () {
'use strict';
return {
require: '?ngModel',
restrict:'A',
link: function ($scope, elm, attrs, controller) {
elm.iphoneStyle({
checkedLabel : attrs.ccCheckboxChecked,
uncheckedLabel : attrs.ccCheckboxUnChecked,
onChange: function(elem, value) {
controller.$setViewValue(value);
$scope.$apply();
}
});
}
};
});
谢谢
编辑:
这是我正在使用的标记:
<input type="checkbox" value="1" ng-model="users.online" cc-checkbox cc-checkbox-checked="Online" cc-checkbox-unchecked="Offline" checked="checked">
问题似乎是您需要调用$setViewValue从DOM加载初始值。在上,查看script.js选项卡了解最后一个示例:它在链接函数中调用ctrl.$setViewValue(elm.html())
。你可能需要这样做。嗯。。。似乎它可能是对的,尝试过,但没有成功。这实际上是一个间歇性问题,有时它会在第一次单击时更改,有时则不会。请尝试根据attrs.checked
的值设置初始视图值,而不是elm.html()
(最初调用$setViewValue()
时可能并不总是设置此值)。