我正在阅读Angular Directives API documentation,尝试理解它,希望我能够使用自己的封装方法创建一个简单的可重用组件,这些方法可以暴露到外部作用域,即到放置该组件的页面的控制器。
controller
中有DirectiveDefinitionObject
个属性,以及controllerAs
属性。
我的问题:可以使用指向函数的controller
属性来封装一个对象,该对象的方法可以被外部作用域调用吗?这些封装的方法是否可以通过组件指令的controllerAs
属性暴露给页面控制器的范围?
这是我试图创建的组件,所以我的问题不会那么抽象。我想要一个清单组件
[ ] onions (2)
[ ] peppers (4)
[ ] mushrooms (8)
其中每个复选框与特定位值(2,4,8,16,32,64 ......)相关联。该组件将公开一个属性,该属性是已检查项目的总和(位)。 单个整数值将绑定到页面范围变量$scope.pizzaToppings
。使用双向绑定时,如果核对表组件绑定到值6,则会检查[x]洋葱和[x]辣椒,但不会检查蘑菇。
我有一部分工作,除了"组件"不是自我意识。清单只是一个模板扩展指令。 "组件"不计算自己的总和(位)。相反,我在页面范围内有一个外部函数来迭代模型。