我们目前正在评估ember.js在 javascript windows(8)商店应用程序中使用。 应用程序本身并没有太多的骚扰。我们面临的问题是相关的 处理将动态内容注入DOM时适用的限制。 Windows商店应用程序在“本地”上下文中运行,即Windows存储应用程序的方式 通常建造。在本地上下文中,windows存储应用程序的html“浏览器主机” 在相当有限的模式下工作。例如,设置innerHTML,outerHTML或附加内容 如果没有明确地被“代理”功能所包围,那么保持脚本元素将全部被阻止 由Microsoft提供( MSApp.execUnsafeLocalFunction )。
示例:Ember.View appendTo不会开箱即用。为了使它工作,该函数必须使用MSApp.execUnsafeLocalFunction代理函数将jQuery调用封装到appendTo。
ORIGINAL :(在Ember.View中)
appendTo: function(target) {
// Schedule the DOM element to be created and appended to the given
// element after bindings have synchronized.
this._insertElementLater(function() {
Ember.assert("You cannot append to an existing Ember.View. Consider using Ember.ContainerView instead.", !Ember.$(target).is('.ember-view') && !Ember.$(target).parents().is ('.ember-view'));
this.$().appendTo(target);
});
return this;
},
已修改以使用Windows应用商店应用
appendTo: function(target) {
// Schedule the DOM element to be created and appended to the given
// element after bindings have synchronized.
this._insertElementLater(function() {
Ember.assert("You cannot append to an existing Ember.View. Consider using Ember.ContainerView instead.", !Ember.$(target).is('.ember-view') && !Ember.$(target).parents().is ('.ember-view'));
var self = this;
MSApp.execUnsafeLocalFunction(function () {
self.$().appendTo(target);
});
});
return this;
},
是否有任何支持Windows应用商店应用的计划,或者是否有任何建议如何解决此问题而无需修补整个代码?我真的在搜索很多,但似乎没有多少人试图让ember.js在javascript windows store应用程序中工作。我真的想将它用作构建混合/跨平台javaScript应用程序的“核心”JavaScript框架。
我用过的图书馆
Microsoft解释了上述here的限制:
非常感谢任何回复和想法...任何帮助将不胜感激!
注意:发布到ember disucssion论坛:here