我有一個標誌,我設置爲true/false,改變了某些項目在頁面上顯示的方式。我遇到了一些麻煩,讓我的模板獲得價值,並讓它實際上工作。正常的HTML(不在模板內)工作正常。將值插入模板AngularJS
restrict: 'E',
scope: {
speedDirection: "@",
speedName: "@",
value: "@",
editElements: "="
},
template:
'<div>'+
'<p class="body-text">{{speedDirection}} '+
'<input type="text" name="{{speedName}}" value="{{value}}" ng-show="editElements">'+
'<span ng-hide="editElements">{{value}}</span>'+
'</p>'+
'</div>',
我想雖然使用editElements的動態模型價值,而不僅僅是通過值傳遞。這種方式,當它改變它將反映顯示模板中的更新。該變量是在對象定義在那裏我存儲我的測試數據:
function MyObject($scope) {
$scope.editElements = true;
有沒有什麼辦法讓這個工作?我試過傳遞它(如上),使用「@」和{{editElement}}位等等。自定義HTML部分:
<speed-limit speed-direction="A to B:"
speed-name="reverse"
value="{{newObject.speedLimit[0]}}"
editElement="editElements">
</speed-limit>
更新:我已經安裝Batarang,它顯示我的自定義元素(限速)的特定部分有「editElement:空」。然而,editElements被引用的其他區域是正確設置的。這是一個奇怪的範圍問題?
您的ng-show/hides正在使用editElements,它與editElement的'scope:{...}'中定義的不同。你是否希望指令使用不同的名稱或相同的名稱? –
如果我不需要像現在這樣通過HTML傳遞editElements,那麼我保持同名。 – Organiccat
您可以對該屬性使用相同的名稱,但您需要通過HTML將它傳遞給指令,因爲您正在創建隔離範圍。試試這個:在HTML中,editElements =「editElements」;在指令中:scope:{...,editElements:「=」}。保持原樣。 –