2014-02-20 81 views

回答

0

實際上,您甚至不需要您自己的指令,因爲已經有一個ng-change,它在輸入發生更改時調用函數。爲此,你只需要編寫你的邏輯控制器:

$scope.Shadow = function(input) { 
    $scope.data.shadow = input; 
    if (input === "cheat") { 
     $scope.data.input = "YOU FOUND THE CODE!"; 
    } 
}; 

,並調用它像這樣:

<input ng-model="data.input" ng-change="Shadow(data.input)" > 
如果您輸入

「欺騙」,則輸入的文本將被替換。這是fiddle

編輯:更新以解決評論。

沒問題,你可以只將其設置爲你扔在輸入指令的控制器,也可以做這樣的fiddle

link: function(scope) { 
     scope.ShadowFunc = function() { 
      scope.shadow = scope.ngModel; 
      if (scope.ngModel === "cheat") { 
       scope.ngModel = "YOU FOUND THE CODE!"; 
      } 
     }; 
    } 

,然後你只需要在傳遞數據正確:

<test-dir model="data.input" shadow="data.shadow"> 
</test-dir> 

    scope: { 
     model: '=', 
     shadow: '=' 
    }, 

希望這有助於!

+0

謝謝ngChange示例,但我試圖找到或構造可重用的指令,完成問題(B/c它只是我期望做的一小部分),所以一次性硬編碼控制器是不是目標。 – diziaq

+0

酷,更新爲更通用 – hassassin

+0

哇,謝謝。你幫了我很多。最後,我已經知道它是如何工作的。 – diziaq