Javascript html模板中的更改不反映
我正在尝试向GeoNetwork 3地图查看器添加一些按钮。不幸的是,我不熟悉AngularJS,GN3就是用它写的。因此,我所做的是编辑“gnMainViewer”指令正在使用的html模板 ViewerDirectve.js:Javascript html模板中的更改不反映,javascript,angularjs,geonetwork,Javascript,Angularjs,Geonetwork,我正在尝试向GeoNetwork 3地图查看器添加一些按钮。不幸的是,我不熟悉AngularJS,GN3就是用它写的。因此,我所做的是编辑“gnMainViewer”指令正在使用的html模板 ViewerDirectve.js: module.directive('gnMainViewer', [ 'gnMap', function(gnMap) { return { restrict: 'A', replace: true, scope: true, te
module.directive('gnMainViewer', [
'gnMap',
function(gnMap) {
return {
restrict: 'A',
replace: true,
scope: true,
templateUrl: '../../catalog/components/viewer/' +
'partials/mainviewer.html',
[...]
}]);
在此模板中,我可以找到地图视图中显示的按钮
mainviewer.html:
<div class="wrapper" data-ng-controller="gnViewerController">
<div data-gn-alert-manager=""></div>
<div id="map" ngeo-map="map" class="map"></div>
<div gn-gfi="" map="map"></div>
<div gn-localisation-input map="map"></div>
<!--Top right buttons - Tools-->
<div class="tools tools-right" gi-btn-group gnv-close-panel data-ng-controller="toolsController">
<button class="btn btn-default" ng-model="activeTools.addLayers" type="submit"
rel="#addLayers" gi-btn gnv-tools-btn>
<span class="fa fa-plus"></span>
<span role="tooltip" data-translate="">addLayers</span>
</button>
<button class="btn btn-default" ng-model="activeTools.layers" type="submit"
rel="#layers" gi-btn gnv-tools-btn>
<span class="fa fa-tasks"></span>
<span role="tooltip" data-translate="">Layers</span>
</button>
[...]
</div>
</div>
添加层
层
[...]
所以我添加了一个按钮,比如:
<button class="btn btn-default" ng-model="" type="submit"
rel="#" gi-btn gnv-tools-btn>
<span class="fa fa-beer"></span>
<span role="tooltip">NewButton</span>
</button>
纽布顿
添加到模板
然后,我保存了更改的地图并刷新了服务器上的MapView页面。但不会显示新按钮。此外,将注释“右上角按钮”更改为其他按钮不会对显示的MapView页面进行任何更改。
即使重新启动服务器也不会改变任何事情
有人能解释一下为什么AngularJS会做出这样的反应吗?有什么想法吗?原来我必须在调试模式下运行页面,例如。
强制单独加载所有AngularJS文件且不带缓存。您确定编辑的模板正确吗?你的方法似乎还可以。就我所能说的,是的。它是包含此视图中显示的按钮的唯一模板。不幸的是,当我在chrome开发者控制台中查看请求时,这个模板没有加载。无论如何,这些按钮都会显示出来,所以应该加载到那里-对吗?我找到的是一个名为gn_search_default.js的文件,它使用$templateCache.put(“../../../catalog/components/viewer/partials/mainviewer.html”“,[…html elements..”;所以我想这就是加载html模板的方式。但是我的更改没有反映在这些文件中正在放置的[html元素]。通过阅读$templateCache的文档,似乎该模板在第一次加载时已被缓存…请尝试清除浏览器的缓存并重新加载页面,以查看您的更改是否可见。这是有道理的,但我使用Ctrl+F5和Ctrl+Shift+R来刷新和删除“当DevTools打开时缓存被禁用”也被激活,而且我已经清除了我的整个浏览器历史记录,这只是为了确定。