看看这个小提琴,我必须更改什么,才能使用我在HTML中定义的参数来评估模板中的表达式?blabla()因为我通过了SAVE按钮,所以它应该调用控制器的- function?
blabla()
var myApp = angular.module('MyApp',[]) myApp.directive('editkeyvalue', function() { return { restrict: 'E', replace: true, scope: { accept: "expression" }, template : '<div><label class="control-label">{{key}}</label>' + '<label class="control-label">{{key}}</label>' + '<input type="text" ng-model="value" />'+ '<button type="button" x-ng-click="cancel()">CANCEL</button>' + '<button type="submit" x-ng-click="save()">SAVE</button></div>', controller: function($scope, $element, $attrs, $location) { $scope.save= function() { $scope.accept(); }; } } });
我看不出来。感谢帮助!
您可以property: '='按照Roy的建议设置两种方式的数据绑定。因此,如果您既想要key又value绑定到本地范围,则可以
property: '='
key
value
scope: { key: '=', value: '=' },
由于要传递这些值,因此可以在指令的控制器中访问它们。但是,如果您想在父作用域的上下文中运行一个函数,这似乎是您要对accept属性执行的操作,那么您需要像这样告诉angular
accept
scope: { accept: "&" }
现在,从您的save方法中,您可以调用通过accept
save
controller: function($scope, $element, $attrs, $location) { $scope.save= function() { $scope.accept() }; }
这是一个jsfiddle