ここで説明されている Bing Maps ライブラリで Durandal/Hot Towel SPA を使用していますhttp://soulsolutions.com.au/Blog/tabid/73/EntryId/818/Knockout-JS-and-Bing-Maps.aspx。このライブラリは、マップ コントロールにアクセスするためのカスタム ko バインディングを作成します。
durandal では、このバインドは 1 つの方法でのみ機能します。変更後にマップ コントロールから値 (ズーム レベルなど) を取得することは可能ですが、クリック後にズーム レベルを設定したい場合は機能しません。
シンプルな HTML ページでテストしていた時、Durandal の外ではすべて問題ありませんでした。
何が問題なのですか?どんな助けでも大歓迎です。
私のビューモデル:
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">