我正在使用 Durandal/Hot Towel SPA 和此处描述的 Bing 地图库http://soulsolutions.com.au/Blog/tabid/73/EntryId/818/Knockout-JS-and-Bing-Maps.aspx。该库创建自定义 ko 绑定以访问地图控件。
对于 durandal,这种绑定仅以一种方式起作用。更改后可以从地图控件中获取值(例如缩放级别),但是当我想在单击后设置缩放级别时,它不起作用。
在 Durandal 之外,当我在一个简单的 html 页面上对其进行测试时,一切正常。
知道有什么问题吗?任何帮助将不胜感激。
我的视图模型:
var mapVM = function () {
this.map = {
options: {
credentials: "bing key",
customizeOverlays: true,
showScalebar: false,
showMapTypeSelector: false,
enableClickableLogo: false,
enableSearchLogo: false,
},
mapview: {
zoom: ko.observable(4).extend({ throttle: 1 }),
},
};
this.testZoom = function () {
this.map.mapview.zoom(5);
};
};
看法:
<input data-bind='value: map.mapview.zoom, valueUpdate: "afterkeydown"' />
<input type="button" data-bind="click: testZoom" value="test zoom" />
<div id="mapControl" data-bind="bingmaps: { map: map }" style="position: relative; width: auto; height: 400px">