2013-02-04 59 views
0

我需要這樣的事情,但它不工作如何調用函數來更改指令中的值?

.directive('dateTime', function(){ 
     return { 
      restrict: 'E', 
      replace: true, 
      scope:'=value', 
      template: "<div>{{value.format('mmm dd yy')}}"</div>", 
            // ^here: applying a function to the scope 
     }; 
    }); 

回答

1

您已使用scope: '=value'創建了一個隔離範圍,因此這是一個全新的範圍,不會從父範圍原型繼承。這意味着你要調用任何函數必須從

  1. 服務,過濾器等你注入指令
  2. 另一個指令的控制器,使用require就可以訪問(見tabspane指令該角主頁爲例)
  3. 您在指令的控制器或在$範圍鏈接功能定義功能(這是本質上是一回事)例:https://stackoverflow.com/a/14621193/215945
  4. 使用「&」語法來啓用指令c所有在父範圍上聲明的函數。例如:What is the best way to implement a button that needs to be disabled while submitting in AngularJS?
0

你可能只是在尋找date filter

{{value | date:'MMM dd yy'}} 

,但你也可以這樣做:

app.directive('dateTime', function(){ 
     return { 
      restrict: 'E', 
      replace: true, 
      scope:'=value', 
      template: "<div>{{value | date:'MMM dd yy')}}"</div>", 
            // ^here: applying a function to the scope 
     }; 
    }); 
+0

以及它不一樣...值可以不是完全日期時間格式,我需要應用一個函數,任何函數它 – Agzam

+0

所以你需要從指令調用範圍函數? –

+0

我有一個指令,在其模板中我使用另一個指令,假設調用一些任意函數並將其應用於值 – Agzam

相關問題