我有一个指令需要显示控制器中对象的数据。必须显示的数据由指令的属性和基于其他 dom 元素的一些其他计算确定。
这是一个简化的例子。
我有这个数据:
app.controller('EditorCtrl', function($scope) {
$scope.blocks = {
header: 'text1',
body: 'text2',
};
});
我希望它与这个指令一起显示:
app.directive('editable', function() {
return {
template: 'data: {{val}}',
link: function(scope, element, attrs) {
element.wrap('<div class="editable"></div>');
data = scope.blocks[attrs.editable];
val = data;
}
}
});
在 HTML 中:
<h1 editable="header">text1 should be displayed here</h1>
<h1 editable="body">text2 should be displayed here</h1>
我怎样才能做到这一点?我是否以正确的方式解决问题?