Windows(8)商店应用程序中的Ember.js需要MSApp.execUnsafeLocalFunction

时间:2013-05-08 16:20:40

标签: windows-8 ember.js windows-store-apps

我们目前正在评估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框架。

我用过的图书馆

  • 余烬-1.0.0-rc.3
  • 车把-1.0.0-rc.3
  • jquery-2.0.0(假设已为Windows 8应用做好准备)
  • 的jquery-UI-1.10.3

Microsoft解释了上述here的限制:

非常感谢任何回复和想法...任何帮助将不胜感激!

注意:发布到ember disucssion论坛:here

0 个答案:

没有答案