我正在尝试将$watch
置于角度值以设置控件,具体取决于来自控制器的指令,我尝试使用leafletScope.$watch("variable")
跟踪angular-leaflet-directive中的线索。< / p>
我添加了一个具有相等比较的新$watch
,因为它是一个对象:
leafletScope.$watch("controls", function(controlOpts) {...}, true)
然后我使用以下方法在控制器中调用它:
angular.extend($scope, {
controls: {}
}
这是为了初始化控件,因为这似乎是必需的。
我稍后会在事件中使用:
调用它$scope.controls = { new object }
如果我在控件中记录更改,然后在$ watch事件中记录,我会得到以下序列:
$watch
已记录的事件$scope.control
更改了记录的事件在$scope
更改后手表未被调用的事实表明我做错了。
任何人都可以告诉我在哪里,或者我在简单的测试中得出了错误的结论。
如果我这样做并改变我的&#34;中心&#34;模特,我明白了:
$watch
已记录事件$scope.center
更改了记录的事件$watch
中心事件答案 0 :(得分:1)
这结果是angular-leaflet-directive与我使用的html-minifier之间的html minifier之间的冲突。传单控件的angular-leaflet-directive表示法是controls
所以在我的html文件中我有
<leaflet center="centre" controls="controls" layers="layers" width="1200px" height="800px"></leaflet>
html-minifier将controls =“controls”作为布尔属性,并将collapse boolean attributes标志缩小为
<leaflet center="centre" controls layers="layers" width="1200px" height="800px"></leaflet>
哪个不好。我会要求这个更好地记录在angular-leaflet-directive中,或者它们将控件的名称更改为传单控件或某些东西以避免这种情况发生在像我这样的毫无疑问的人中。
事实上,手表上的真正旗帜被证明是太耗费资源而且我将其删除了它仍然有效..