交换机不支持Angular UI Routing
我正在使用Angular UI Routing和一个UI插件开发一个基于自举开关的“复选框开关”的Angular应用程序。交换机不支持Angular UI Routing
问题是模板在打开开关的shell页面后加载,并且它们显示为正常复选框。请注意,复选框被包装在具有类“switch”的父级div中以正确显示。
我的愿望是创建一个全局解决方案,而不必为每个交换机添加一个属性。
这里是与应用至今一个Plunker: http://embed.plnkr.co/LRSGXqxjtbYcr6rjTj69/preview
我刚开始学习角,所以我明白,是相当具体的答案。谢谢!
HTML:
<div class="switch">
<input type="checkbox">
</div>
JS:
$(".switch").switch();
文档: https://tictail.com/developers/documentation/uikit/#Switches
不要使用jQuery的切换,但角度:
<div class="switch" data-ng-controller="myController">
<input type="checkbox" ng-model="myCheckbox">
</div>
<button ng-click="switch()">Switch programmatically</button>
<script type="text/javascript">
angular.module('myApp')
.controller('myController', ['$scope', '$timeout', function($scope, $timeout){
$scope.myCheckbox = false; // initialise the checkbox to unchecked
$timeout(function(){ // switch to checked 3 seconds later
$scope.myCheckbox = true;
},3000);
$scope.switch = function(){
$scope.myCheckbox = !$scope.myCheckbox;
};
}]);
</script>
在angularjs应用程序中的DOM操作(来自angularjs FAQ):
停止尝试使用jQuery来修改控制器中的DOM。真。这包括添加元素,删除元素,检索其内容,显示和隐藏它们。使用内置指令,或者在必要时编写自己的指令,以执行DOM操作。请参阅下面的重复功能。
如果您正在努力打破这种习惯,可以考虑从您的应用中删除jQuery。真。 Angular拥有$ http服务和强大的指令,这使得它几乎总是不必要的。 Angular捆绑的jQLite具有一些写作Angular指令最常用的特性,特别是绑定到事件。
此外,我建议你这些伟大的资源上的主题:
谢谢!我没有得到任何脚本错误,但没有任何反应。请注意,我正在使用基于jQuery的特定框架,因此我需要使用jQuery,因此交换机的外观和行为需要与仅使用jQuery的情况相同。 – peta 2014-08-29 11:44:39
是的。 Jquery和angularjs不是不兼容的,但它们的关联需要谨慎。我为你提供了一些额外的资源。 – 2014-08-29 11:58:38
但是,如果没有出现,可能会出现其他问题。你可以发布一个jsfiddle,codepen或者重现你的问题吗? – 2014-08-29 12:01:34
你尝试添加开关类直接到输入? – 2014-08-29 10:56:10
是的。我只是表现为一个巨大的开关。我应该以此为例。我还为交换机的文档添加了一个url。 – peta 2014-08-29 11:01:24
确保你添加了$(“。switch”)。在document.ready – 2014-08-29 11:04:37