将ng-model作为指令angualjrs中的参数传递

时间:2015-08-04 11:59:15

标签: javascript jquery angularjs angularjs-directive

我正在AngularJs写一个指令,我希望将ng-model作为参数传递。

<div class="col-md-7"><time-picker></time-picker></div>

指令是:

    app.directive('timePicker', function () {
    return {
        restrict: 'E',
        replace: true,
        template: '<input type="text" class="form-control time-picker" ng-model="emp.signin">',
        link: function ($scope, element, form) {
            $(element).timepicker({'timeFormat': 'H:i:s'});
        }
    }
})

工作正常,此处ng-modelemp.signin。我希望能够将此ng-model动态地作为参数传递

这怎么可能?

1 个答案:

答案 0 :(得分:3)

您可以使用

<div class="col-md-7"><time-picker model-value="emp.signin"></time-picker></div>

app.directive('timePicker', function () {
    return {
        restrict: 'E',
        replace: true,
        template: '<input type="text" class="form-control time-picker"ng-model="modelValue ">',
        scope: {
            modelValue : '=',
        }
        link: function ($scope, element, form) {
            $(element).timepicker({'timeFormat': 'H:i:s'});
        }
    }
})

<强>释

  

“=”前缀将在父级和。之间创建双向绑定   指令范围,它总是期望属性值为   模型名称,表示您无法提供表达式作为值   属性映射到“=”前缀。

供参考:&#34; http://www.undefinednull.com/2014/02/11/mastering-the-scope-of-a-directive-in-angularjs/&#34;