我有这个指令`
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 = [];
和我的HTML
<div xml-to-html xslt="test.xslt" administrator="Agent.Administrator"></div>
范围Agent.Administrator是布尔值。并且在指令之外更改值,所以我想要两种方式绑定。
问题是不行,如果bool管理员改变值,指令一无所知!但奇怪的是,如果我更换“Agent.Administrator”&#39;与代理商&#39; (所有对象,而不仅仅是一个标志)工作完美,并抓住任何标志的变化&#39;管理员&#39;。
boolean in指令有什么不同的方法吗? 这里奇怪的是,如果我只通过旗帜,指令不知道任何改变,但如果我通过所有对象,指令知道任何改变。
答案 0 :(得分:1)
这是因为Behat
是原始类型,因此当您传递boolean
时,它会复制该值并且您有一个新项目。您可以传递具有该布尔值属性的对象boolean
,例如
Administrator
答案 1 :(得分:0)
你可以简单地把
Agent.Administrator=true;