我正在尝试使用ngSwitch和ngAnimate创建一个由this example启发的滑块指令,但没有成功。有一个超时调用next
函数增加scope.current
变量,ngSwitch应该使用此变量来切换图像。
<div class="slider">
<img src="..." />
<img src="..." />
<img src="..." />
</div>
以下是我的plunker示例。我认为它与范围有关(它总是你的范围)。
UPDATE:我做了一些进展,我将属性操作移到了编译功能,看起来它有点帮助但是现在我收到了一个错误:No controller: ngSwitch
。
new plunker
答案 0 :(得分:1)
Angularjs显示错误No controller: ngSwitch
的原因是因为ng-switch-when
取决于ng-switch
。因此,您应在创建ng-switch-when
范围时添加ng-switch
的属性。最简单的方法是在$observe
上使用ngSwitch
。
这是使编译工作的一种方法
attrs.$observe('ngSwitch', function () {
for (i = _i = 0, _len = pages.length; _i < _len; i = ++_i) {
page = pages[i];
page.setAttribute('ng-switch-when', i);
}
});
但是,由于创建了新范围current
,您无法访问ng-switch
值,因此动画无效。
为了使指令有效,我认为最简单的方法是在模板中声明ng-switch="current"
,以便指令可以访问它所监视的值。
希望它可以有所启发。
答案 1 :(得分:1)