我对角度和指令相当新,但是当我为我的应用程序制作自定义指令时,我意识到我使用变量和范围可以互换而没有问题。
例如,我有scope.onBreak = false
和var completedSessions = 0
我的问题是,我何时应该使用范围,何时应该在指令中使用变量,如果我不相应地使用它们,这最终会导致问题。
scope.onBreak = false;
scope.onLongBreak = false;
// starts countdown from current work/break time
scope.timerText = "Work Timer";
var completedSessions = 0;
var timeSet;
var setBreak = function() {
$interval.cancel(timeSet);
scope.workTime = MY_TIMES.break;
scope.buttonText = "START";
scope.onBreak = true;
scope.timerText = "Break Timer";
};
scope.countdown = function() {
if (scope.workTime <= 0) {
//if countdown reaches 0 and is on break , set time to 25m (work)
if (scope.onBreak) {
console.log("currently working");
setWork();
} else {
setBreak();
}
}
} else {
//countdown
scope.workTime--;
}
};
答案 0 :(得分:0)
我认为看待它的一个好方法就是说&#39;范围&#39;是控制器和视图(模板)之间的可延展(和可操作)链接。变量是您正在处理的类的内部变量,无论是控制器,指令,服务等,并且只能由这些类看到(模板文件无法访问控制器上名为&#39; foo&#39;的声明变量)。可能有更多有说服力的解释,但由于没有人发布任何内容,我想是的。
答案 1 :(得分:0)
只要您不需要将数据传递给视图,就应该使用变量,因为它更快。
如果您需要在视图中使用该数据,请使用范围。
答案 2 :(得分:0)
范围变量绑定到DOM视图。但是var不能绑定,只有我们可以在JS中使用功能。