<button>expand</button>
<my-menu></my-menu>
我想點擊按鈕就展開menu
,但怎麼將menu
的API暴露出來給button
使用呢?
或是有沒有其他更好的做法?
大家讲道理2017-06-17 09:17:37
不需要揭露什麼API, 你只需要在指令上使用自訂屬性進行資料雙向綁定。
例如你需要顯示隱藏,你就在指令上使用一個display屬性,例如:
<my-menu display="someCtrlValue" ></my-menu>
然後在你的控制器中去控制這個值,例如
if(condition){
$scope.someCtrlValue = true;
}
當然指令中你只需要指定雙向綁定的屬性即可;
Module.directive("myMenu", function(){
return {
scope: {
display : '='
}
...
}
})
高洛峰2017-06-17 09:17:37
你可以在寫my-menu指令的時候,指定一個雙向綁定屬性,例如collapse,然後透過
仅有的幸福2017-06-17 09:17:37
提供一個方法可以在指令中進行emit, 然後controller進行on監聽
另外,一般指令是外部像內部傳值 才能達到指令的靈活性 ,如果這樣每次修改API不是得修改指令了?