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

Windows 8 windows(8)应用商店应用程序中的Ember.js需要MSApp.execunsaleocalfunction,windows-8,ember.js,windows-store-apps,Windows 8,Ember.js,Windows Store Apps,我们目前正在评估ember.js是否可在javascript windows(8)应用商店应用程序中使用。 应用程序本身并不是interest本身。我们面临的问题是相互关联的 在处理注入DOM的动态内容时应用的限制。 Windows应用商店应用程序在“本地”上下文中运行,即Windows应用商店应用程序的运行方式 典型的建筑风格。在本地上下文中,windows应用商店应用程序的html“浏览器主机” 在一个相当有限的模式下工作。例如,设置innerHTML、outerHTML或附加内容 如果不是

我们目前正在评估ember.js是否可在javascript windows(8)应用商店应用程序中使用。 应用程序本身并不是interest本身。我们面临的问题是相互关联的 在处理注入DOM的动态内容时应用的限制。 Windows应用商店应用程序在“本地”上下文中运行,即Windows应用商店应用程序的运行方式 典型的建筑风格。在本地上下文中,windows应用商店应用程序的html“浏览器主机” 在一个相当有限的模式下工作。例如,设置innerHTML、outerHTML或附加内容 如果不是由“代理”函数显式封装,则保存脚本元素的所有元素都将被阻止 由Microsoft提供(MSApp.execunsaleocalfunction

示例:Ember.View appendTo将无法开箱即用。为了让它工作,函数必须用MSApp.execUnsafeLocalFunction代理函数封装对appendTo的jQuery调用

原件:(在余烬视图中)

已修改以使用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代码?我确实搜索了很多,但似乎没有多少人试图让ember.js在javascript windows应用商店应用程序中工作。我真的很想将它用作构建混合/跨平台JavaScript应用程序的“核心”JavaScript框架

我用过的图书馆

  • 余烬-1.0.0-rc.3
  • 把手-1.0.0-rc.3
  • jquery-2.0.0(假设已准备好用于Windows 8应用程序)
  • jquery-ui-1.10.3
Microsoft解释了上述限制:

非常感谢您的回复和想法。。。任何帮助都将不胜感激


注意:发布到ember Discsion论坛:

我认为在目前的状态下,在Win8商店应用程序平台ember.js和Win8商店应用程序平台上都没有办法解决这个问题。您可能需要定制Ember以专门为该平台工作;如果我是你的话,我可能会尝试联系一个投稿人。你说的对,这可能是我必须要做的。谢谢你的回答。如果我得到任何消息,我会把它贴在这里。@AleB,你有什么消息吗?或者你有没有找到解决办法?
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;
  },