搜尋

首頁  >  問答  >  主體

javascript - angularJS指令如何暴露API給外面的controller使用?

<button>expand</button>
<my-menu></my-menu>

我想點擊按鈕就展開menu,但怎麼將menu的API暴露出來給button使用呢?
或是有沒有其他更好的做法?

伊谢尔伦伊谢尔伦2747 天前1448

全部回覆(3)我來回復

  • 大家讲道理

    大家讲道理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 : '='
           }
           ...
       }
     })

    回覆
    0
  • 高洛峰

    高洛峰2017-06-17 09:17:37

    你可以在寫my-menu指令的時候,指定一個雙向綁定屬性,例如collapse,然後透過這樣使用,然後透過button的ng-click事件控制val變數(true/false)就可以。然後在定義指令時,透過獨立作用域實現雙向綁定,可參考http://xgfe.github.io/2015/12...這篇文章

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-06-17 09:17:37

    提供一個方法可以在指令中進行emit, 然後controller進行on監聽
    另外,一般指令是外部像內部傳值 才能達到指令的靈活性 ,如果這樣每次修改API不是得修改指令了?

    回覆
    0
  • 取消回覆