编辑:事实证明,这实际上工作,它只是不显示检查器中的'模型'属性后面的内容。我没有注意到它,因为我没有使用特定数据点的内容。 Facepalm感谢所有的帮助。调用伪指令属性作为嵌套伪指令属性值
所以我试图通过创建一个相当详细的嵌套指令结构来使我的表单结构更简单。我使用相当基本的角码来实现这一点,但出于某种原因,使用来自父项的属性作为子指令属性的值不起作用(下面的代码解释,必须改变一些专有的词,但它本质上一样)。我究竟做错了什么?
父HTML指令电话:
<field-label project-for="projectName" project-model="data.product.projectName">Project Name</field-label>
指令代码:
app.directive("fieldLabel", function() {
return {
restrict: "E",
transclude: true,
scope: { model: '=projectModel', for: '@projectFor' },
templateUrl: 'views/products/label.html',
};
});
编辑:根据要求,在使用其他指令这里:
app.directive("projectOtherView", function() {
return {
restrict: "E",
scope: { field: '=projectOtherViewModel' },
templateUrl: 'views/products/XXX.html',
};
});
模板HTML
<div class="col-sm-2 text-right">
<label for="{{for}}" class="control-label" ng-transclude></label>
<project-other-view project-other-view-model="model"></project-other-view>
</div>
的“为”工作正常,但“模型”只有通过本身,它应该不是(型号名称我穿过开头)。
project-other-view的代码是什么? – fabrizioM
我补充说,在雅。 – trudesign
它工作正常。如果您的产品/ XXX.html包含{{field}},它将显示data.product.projectName的内容。不要担心它仍然被称为模型,这是正确的。请参阅http://plnkr.co/edit/MsAHkTU3KLXWhpplWAPs?p=preview – Stevo