ng-repeat不使用Firebreath插件对象

时间:2014-08-10 23:23:44

标签: javascript angularjs firebreath

我刚刚开始使用AngularJS,我正在尝试在Firebreath插件上使用ng-repeat,但它似乎不起作用。

<div ng-controller="PluginCtrl">
   <object type='application/x-sometype' ng-repeat='plugin in plugins' 
        id='pluginobj_{{plugin.id}}'>
   </object>
</div>

我的控制器文件的代码如下:

var app = angular.module("appName");
app.controller("PluginCtrl", function($scope){
   $scope.plugins = {};
   $scope.plugins["1"] = {id: "1"};
   $scope.plugins["2"] = {id: "2"};
});

我知道这是Firebreath的JSAPI的问题,因为如果我将对象'type'更改为其他内容,它的效果非常好。我没有深入了解这是什么原因,但我想在JSAPI中缺少使用ng-repeat进行计算时,angularJS需要的一些对象dom属性。如果有人知道为什么会这样或者已经遇到过这种情况会很有帮助。提前谢谢。

编辑:不工作我的意思是{{plugin.id}}没有被值1&amp;替换。虽然在dom中创建了两个对象元素,但是从范围开始。

1 个答案:

答案 0 :(得分:0)

这实际上不是JSAPI,一般来说就是它的插件。我怀疑它是否适用于Flash。我并不是百分之百确定,但我曾经花了一天左右的时间来试图解决这个问题,并最终深入研究了我遇到过的一些最奇怪的问题。

为什么这会是一个坏主意的原因比我记忆中的要长,我写了FireBreath。我只想说,永远不会做好你正在做的事情。首先,在将对象标记添加到DOM之前,不应该设置对象标记的类型,因为在某些情况下浏览器(取决于浏览器,操作系统和版本)实际上会在删除插件实例时重新实例化并将其添加到其他位置在某些情况下,角度往往会发生。

我真的建议只使用插件直接注入html,或者,如果你不接受,请在渲染后设置类型。你应该能够设置一个指令,以便在需要的时候实现这一点,包括必要时添加插件的多个实例。

您也可以花一些时间来修复它;我已经这样做了,我不认为值得花时间花在它上面。