3

我们目前正在评估 ember.js 以在javascript windows (8) 商店应用程序中使用。应用程序本身并没有太大的兴趣。我们面临的问题与处理被注入 DOM 的动态内容时应用的限制有关。Windows 商店应用程序在“本地”上下文中运行,即通常如何构建 Windows 商店应用程序的方式。在本地上下文中,Windows 商店应用程序的 html“浏览器主机”以相当受限的模式工作。例如,如果没有由 Microsoft 提供的“代理”函数 ( MSApp.execUnsafeLocalFunction ) 明确封装,则设置 innerHTML、outerHTML 或附加内容包含脚本元素都将被阻止。

示例:Ember.View appendTo 不能开箱即用。为了使其工作,该函数必须使用 MSApp.execUnsafeLocalFunction 代理函数封装对 appendTo 的 jQuery 调用。

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

我使用的库

  • ember-1.0.0-rc.3
  • 车把-1.0.0-rc.3
  • jquery-2.0.0(假设已准备好用于 Windows 8 应用程序)
  • jquery-ui-1.10.3

微软在这里解释了上面提到的限制:

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

注意:发布到 ember 讨论论坛:这里

4

0 回答 0