깃발이 있습니다. 일부 항목이 페이지에 표시되는 방식을 변경하는 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>
UPDATE : 나는 Batarang를 설치 한 그것은 "editElement : 널 (null)"을 가지고 내 사용자 지정 요소 (속도 제한)의 특정 부분을 보여줍니다. 그러나 editElements가 참조하는 다른 영역은 올바르게 설정됩니다. 이것은 이상한 범위 문제입니까? 주석에서 설명하고있는 바와 같이
귀하의 ng-show/hide는 editElement 인'scope : {...} '에 정의 된 것과는 다른 editElements를 사용하고 있습니다. 이 지시문에서 다른 이름을 사용하고 싶습니까? –
내가 지금하고있는 것처럼 HTML을 통해 editElements를 전달할 필요가 없다면 같은 이름을 유지하는 것이 좋습니다. – Organiccat
속성에 동일한 이름을 사용할 수 있지만 격리 범위를 작성하기 때문에 HTML을 통해 지시문에 전달해야합니다. 이것을보십시오 : HTML에서, editElements = "editElements"; 지시어 : scope : {..., editElements : "="}. 템플릿을 그대로 둡니다. –