执行此操作的方式与使用元素指令的方式完全相同。您将在attrs对象中拥有它们,我的示例通过分离范围将它们双向结合,但这不是必需的。如果使用隔离的作用域,则可以使用或仅使用 scope.sample 访问属性,但根据您的具体情况,可能不会在链接时定义这些属性。scope.$eval(attrs.sample)
app.directive('sample', function () {
return {
restrict: 'A',
scope: {
'sample' : '=',
'another' : '='
},
link: function (scope, element, attrs) {
console.log(attrs);
scope.$watch('sample', function (newVal) {
console.log('sample', newVal);
});
scope.$watch('another', function (newVal) {
console.log('another', newVal);
});
}
};
});
用作:
<input type="text" ng-model="name" placeholder="Enter a name here">
<input type="text" ng-model="something" placeholder="Enter something here">
<div sample="name" another="something"></div>