我应该在控制器上定义仅模板属性吗?

时间:2016-09-13 08:35:19

标签: angularjs typescript

我的指令模板上有一个简单的切换变量

<div ng-mouseenter="$ctrl.myToggle = true" ng-mouseleave="$ctrl.myToggle = false">
...
</div>
<div ng-if="$ctrl.myToggle">
... toggled content
</div>

我正在使用打字稿编写我的控制器。

我应该在我的控制器类上定义myToggle,虽然它永远不会被使用? (我不需要切换功能,因为它是唯一必须更改的属性)

export MyController {

  public myToggle:boolean = false;

  construtctor(){
    //...
  }

  //...
}

仅在我的模板中使用这种逻辑是不好的做法吗?

1 个答案:

答案 0 :(得分:0)

控制器和模板(视图)都是单个实体的一部分 - 指令/组件。这是在Angular 2中进一步开发的概念,其中控制器类称为指令/组件类。

由于它应该由组件本身使用,因此将属性可见性指定为private是正确的。

在某些情况下,缺少getter / setter toggle()方法可能被认为是一种不好的做法,因为它的存在有利于封装和可测试性,但在当前情况下,使用toggle属性绝对是相同的。