【问题标题】:Variables or scope usage inside directives指令内的变量或范围使用
【发布时间】:2017-01-13 09:27:04
【问题描述】:

我对角度和指令相当陌生,但是当我为我的应用程序制作自定义指令时,我意识到我可以互换使用变量和范围,没有任何问题。

例如我有scope.onBreak = falsevar 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--;
}
};

【问题讨论】:

    标签: javascript angularjs variables angularjs-directive scope


    【解决方案1】:

    我认为看待它的一个好方法是说“范围”是控制器和视图(模板)之间的可延展(和可操作)链接。变量是您正在处理的类的内部变量,无论是控制器、指令、服务等,并且只能由这些类看到(模板文件无法访问控制器上名为“foo”的已声明变量)。可能有更雄辩的解释,但由于没有人发布任何内容,我想我会的。

    【讨论】:

      【解决方案2】:

      当您不需要将数据传递给视图时,您应该使用变量,因为它更快。

      如果您需要在视图中使用该数据,请使用范围。

      【讨论】:

        【解决方案3】:

        范围变量绑定到 DOM 视图。但是 var 不能绑定,而且功能方面只有我们可以在 JS 中使用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-12-10
          • 2014-05-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多