我正在使用返回模式加载我的viewmodel。我的VM有一个名为'intro'的可观察对象。
我想将'intro'observable的值传递给我页面上的另一个脚本。
在下面的代码中,如何将twtTitle的值设置为'intro'可观察值?
感谢。
<script type="text/javascript">
var twtTitle = my.intro.value;
var twtUrl = location.href;
var maxLength = 140 - (twtUrl.length + 1);
if (twtTitle.length > maxLength) {
twtTitle = twtTitle.substr(0, (maxLength - 3)) + '...';
}
var twtLink = 'http://twitter.com/home?status='
+ encodeURIComponent(twtTitle + ' ' + twtUrl);
document.write
(
'<a href="' + twtLink + '" target="_blank"' + '>' +
'<img src="/Images/tweetthis.gif" border="0" alt="Tweet This!" /' +
'><' + '/a>'
);
</script>
答案 0 :(得分:0)
事件聚合器模式怎么样?我为SignalR Eventaggregator库做了一个 https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy
如果您不需要SignalR,您可以提取相关客户端事件聚合器代码,请参阅此小提琴
对于您的特定用途,您可以
this.intro = ko.observable();
this.intro.subscribe(function(value) {
signalR.eventAggregator.publish(new MyApp.IntroChanged(value));
}, this);
这种模式的好处是解耦,严格类型的消息和高可扩展性。