我在我的指令链接函数中有此函数:
scope.$parent.resetData(){
scope.data = '';
}
在我的html中:
<ul ng-model="selectedObject">
<li>{{ object.label }}</li>
</ul>
<button ng-click="resetData()">reset!</button>
<directive data={{ selectedObject.dataset }}></directive>
在我的app.controller中
$scope.$watch('selectedObject', function(){
$scope.resetData(); //this cant be used
});
我不能在控制器范围内使用$ scope.reset(),有没有办法能够以最简单的方式重用该功能,而不是为此数据集提供工厂/服务?
最佳答案
输入指令selectedObject
而不是selectedObject.dataset
,并在内部管理重置。
它将被更封装,这将是很好的。如果更改selectedObject
始终会重置数据,则将指令视为组件并将其包含在内部逻辑中使其更加独立。这样,外部代码就不必担心帮助该指令完成其工作。