내 HTML에서이 지시어`각도 지시 동작은
var xmlToHtml = function() {
return {
restrict: "A",
templateUrl: 'Components/XML2Html/views/XML2Html.html',
controllerAs: 'XmlToHtmlController',
bindToController: true,
scope: {
xslt: '@',
administrator: '='
},
link: function() {
},
controller: function ($scope, $timeout, $sce, $http, $filter, $timeout, $window) {
$scope.administrator = this.administrator;
$scope.$watch('administrator', function (newVal, oldVal) {
console.log($scope.administrator);
}, true);
},
};
}
xmlToHtml.$inject = [];
하고 있습니다
<div xml-to-html xslt="test.xslt" administrator="Agent.Administrator"></div>
범위 Agent.Administrator은 부울입니다 예상되지 않음. 그리고 지시어 바깥에서 값을 변경하십시오. 그래서 저는 두 가지 방법으로 바인딩해야합니다.
문제는 작동하지 않습니다. bool 관리자가 값을 변경하면 지시문에 아무 것도 알려지지 않습니다. 하지만 이상한 점은 'Agent.Administrator'를 'Agent'(모든 객체와 이것의 한 가지 플래그가 아니라)로 대체하면 완벽하게 작동하고 플래그 'Administrator'의 변경 사항을 잡는 것입니다.
부울 지시어에 대한 다른 접근법이 있습니까? 이상하게 여기는 것은 플래그 만 전달하면 지시어는 변경 사항을 알지 못하지만 모든 객체를 전달하면 지시문에 변경 사항을 알 수 있습니다.
을 넣을 수 있지만, 내 지시에 내가 범위가 { XSLT를 '@', 관리자 : '=' } 기호 '='는 사본을 만들지는 않지만 커뮤니 케이 티브의 두 가지 방법을 의미합니다. – GomuGomuNoRocket
@GomuGomuNoRocket'Administrator'는 반드시 객체 여야합니다. Agent.Administrator를 사용하지 않으면 상위 범위를 업데이트하기위한 적절한 참조를 얻지 못합니다. –