通过观察变量触发指令内的函数

时间:2017-11-16 11:22:22

标签: angularjs

假设我有以下指令:

angular.module("myModule", [])
.directive('myDirective', function ($timeout) {
    return {
        restrict: 'EA',          
        scope: {
            value: '=',
            valueIsValid: '='         
        },
        link: function (scope, element, attrs) { 

             scope.returnValueIsValid = function() {
                  // return valueIsValid = true or false 
             };
        }
    }
});

以下列方式调用:

 <div my-directive  value="value"  value-is-valid="valueIsValid"></div>

value变量是指令的输入,如果值在valueIsValid变量中有效,则返回指令。有没有办法通过观看valueIsValid

来触发验证功能

1 个答案:

答案 0 :(得分:1)

我认为valueIsValid

value>0为真

&#13;
&#13;
var myApp = angular.module('myApp',[]);
myApp.controller('MyCtrl',function($scope, $timeout) {

});

myApp.directive('myDirective', function ($timeout) {
    return {
        restrict: 'EA',          
        scope: {
            value: '=',
            valueIsValid: '='         
        },
        link: function (scope, element, attrs) { 
           scope.$watch("value",function(a,b){
           if(a && a != 0){
             scope.valueIsValid =true;
           }else{
              scope.valueIsValid =false;
              }
           })
        }
    }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
<input type="number" value="0" ng-model="value"/>
 <div my-directive  value="value"  value-is-valid="valueIsValid"></div>
 value is valid:-   {{valueIsValid}}
</div>
&#13;
&#13;
&#13;