angular 注意 angular-传单指令
angular watch for angular-leaflet-directive
我试图将 $watch
放在 angular 中的一个值上,以根据控制器的指令设置不同的控件,并且我尝试跟随 angular-leaflet-directive 中的领导使用 leafletScope.$watch("variable")
.
我添加了一个新的 $watch
,因为它是一个对象:
leafletScope.$watch("controls", function(controlOpts) {...}, true)
然后我在控制器中调用它使用:
angular.extend($scope, {
controls: {}
}
这是为了初始化控件,因为这似乎是必需的。
然后我稍后在事件中调用它:
$scope.controls = { new object }
如果我在控件中记录更改,然后也在 $watch 事件中记录更改,我得到以下序列:
- 控制
$watch
事件记录
$scope.control
更改事件已记录
- 没有更多日志
$scope
更改后手表未被调用这一事实表明我做错了。
任何人都可以告诉我在哪里,或者我在简单测试中是否得出了错误的结论。
如果我这样做并更改我的 "center" 模型,我得到:
- 中心
$watch
事件已记录
$scope.center
更改事件已记录
- 中心
$watch
使用新值记录的事件
这原来是 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 中有更好的记录,或者他们将控件的名称更改为 leaflet-controls 或其他东西以避免将来像我这样毫无戒心的人发生这种情况。
顺便说一句,手表上的 true flag 太耗资源了,我把它去掉了,它仍然有效..
我试图将 $watch
放在 angular 中的一个值上,以根据控制器的指令设置不同的控件,并且我尝试跟随 angular-leaflet-directive 中的领导使用 leafletScope.$watch("variable")
.
我添加了一个新的 $watch
,因为它是一个对象:
leafletScope.$watch("controls", function(controlOpts) {...}, true)
然后我在控制器中调用它使用:
angular.extend($scope, {
controls: {}
}
这是为了初始化控件,因为这似乎是必需的。
然后我稍后在事件中调用它:
$scope.controls = { new object }
如果我在控件中记录更改,然后也在 $watch 事件中记录更改,我得到以下序列:
- 控制
$watch
事件记录 $scope.control
更改事件已记录- 没有更多日志
$scope
更改后手表未被调用这一事实表明我做错了。
任何人都可以告诉我在哪里,或者我在简单测试中是否得出了错误的结论。
如果我这样做并更改我的 "center" 模型,我得到:
- 中心
$watch
事件已记录 $scope.center
更改事件已记录- 中心
$watch
使用新值记录的事件
这原来是 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 中有更好的记录,或者他们将控件的名称更改为 leaflet-controls 或其他东西以避免将来像我这样毫无戒心的人发生这种情况。
顺便说一句,手表上的 true flag 太耗资源了,我把它去掉了,它仍然有效..