双向数据绑定无法从指令链接函数angularjs工作
我试图在指令视图html中使用指令'link:function'中声明的变量 我尝试使用的变量是int from对象,这个对象被声明为$scope变量slider 我正在尝试显示它:双向数据绑定无法从指令链接函数angularjs工作,angularjs,directive,Angularjs,Directive,我试图在指令视图html中使用指令'link:function'中声明的变量 我尝试使用的变量是int from对象,这个对象被声明为$scope变量slider 我正在尝试显示它: <div> {{ slider.step }} </div> 如果步骤===2,我将改变步骤 基本上,这是正确的工作垂直滑块。唯一缺少的是,我无法从视图访问当前步骤,也无法显示当前选定幻灯片的正确活动点。这就是为什么我需要看到这个步骤int,但我不能 是plnkr演示。您必须使用$
<div>
{{ slider.step }}
</div>
如果步骤===2,我将改变步骤
基本上,这是正确的工作垂直滑块。唯一缺少的是,我无法从视图访问当前步骤,也无法显示当前选定幻灯片的正确活动点。这就是为什么我需要看到这个步骤int,但我不能
是plnkr演示。您必须使用$timeoutfunction{$scope.$apply;};数据更改后
工作示例
角度。模块'plunker',[];
函数MainCtrl$scope{
$scope.hello='World';
}
角度。模块'plunker'。指令'elements',函数$timeout{
返回{
限制:'E',
范围:{
名称:'='
},
模板:`
{{滑块}}
`,
链接:函数$scope,el{
$scope.slider={
步骤:1,
更改幻灯片:功能步骤{
控制台日志11,步骤
如果步骤===1{
这个步骤=1;
console.log“将步骤更改为1:”+$scope.slider.step;
}
如果步骤===2{
这个步骤=2;
console.log“将步骤更改为2:”+$scope.slider.step;
}
$timeoutfunction{$scope.$apply;};
}
}
var i=1;
$timeoutfunction{
$scope.slider.changeSlidei;
设置间隔函数{
i++;
如果i==3,则i=1;
$scope.slider.changeSlidei;
}, 5000;
};
}
};
};
安古拉斯普朗克
文件。书写;
在更改其值的位置添加一些console.log。也许是你搞错了!我在this.step=2之后添加了console.log,它执行了console 2,但没有在html模板中重新加载。它显示1,不想改变,我做错了什么,你能提供一个有效的plunker或codepen示例吗?是的,当然。干得好。我并没有使用来自原始源代码的代码,但我创建了这个问题的最小示例。启动此脚本时,请查看控制台。它在JS代码中发生了变化,但在模板中并没有重新命名,这就是为什么这个问题的标题是双向数据绑定不起作用:是的,但为什么我必须使用它是奇怪的,而且@BT101I现在在初始化函数时出错,不是在间隔内,而是通过ng单击错误:[$rootScope:inprog]$apply已在进行中,因此您的问题现在已更改为其他问题。搜索这个新的。我也会搜索@BT101,让我们一起搜索。
link: function($scope, el) {
$scope.slider = {
step: 1,
changeSlide: function (step) {
if(step === 1) {
this.step = 1;
console.log('changed step to 1: ' + $scope.slider.step);
}
if(step === 2) {
this.step = 2;
console.log('changed step to 2: ' + $scope.slider.step);
}
}
}
$timeout(function () {
var i = 1;
$scope.slider.changeSlide(i);
setInterval(function () {
i++; if(i === 3) i = 1;
$scope.slider.changeSlide(i);
}, 5000);
});
}