0

有没有办法实现类似于我们在 Flex 中的数据绑定?

我注意到在第 9 课 中使用简单的模板引擎支持 dataBinding,但是一旦我更新了我的模型,这些更改就不会传播到我的视图中。

[更新] 这是我的调解员

package mediators
{

    import randori.behaviors.AbstractMediator;
    import randori.behaviors.SimpleList;
    import randori.jquery.Event;
    import randori.jquery.JQuery;

    /**
     * Created by IntelliJ IDEA.
     * User: jfernandes
     * Date: 23-04-2013
     * Time: 14:54
     */
    public class IndexMediator extends AbstractMediator
    {
        [View]
        public var names:SimpleList;

        [View]
        public var change:JQuery;
        private var Mike : People = new People("Mike");
        private var Roland : People = new People("Roland");

        override protected function onRegister():void {

            names.data = [Mike,Roland];
            change.click(function(event:Event):void
            {
                this.Mike.name = "Mike Lambriola";
            });
        }

    }
}

人物类

package
{

    /**
     * Created by IntelliJ IDEA.
     * User: jfernandes
     * Date: 30-04-2013
     * Time: 12:52
     */
    public class People
    {
        public function People(name:String)
        {
            this.name = name;
        }
        public var name:String="";
    }
}

索引体

<body class="simpleApp">
<ul id="names" class="simpleList">
    <li id="template">{name}</li>
</ul>

<input id="change" value="Change values" type="button"/>
</body>

通过单击按钮,我没有看到 Mike 的名字被更新为 Mike Lambriola。

4

1 回答 1

0

在当前的发布版本中,我们没有包含我们的可观察模式代码(v.2.6)。您将在即将发布的版本中看到这一点,我们期待 v.3.0 提供全面支持。延迟的原因是兼容性。例如,我们需要实现一些可以包装的东西,以便与 SlickGrid 的数据模型和 Kendo 的数据模型同样好地工作。

也就是说,要理解在大多数 JavaScript 组件中都公开了它们自己的数据绑定模型。因此,如果您在一组组件中工作,例如 Kendo,您已经可以使用它们的可观察对象和数据源以及所有工作。

所以,诀窍(以及 randori 的难点)不是创建一个实现。它有一个可以从 AS 使用,但如果您使用多个库,则可以与其他组件集共享。

一旦发布,列表、模板和其他随机行为将被更新以使用它。

目前,一旦数据发生变化,将数据重新分配给行为几乎没有什么惩罚。

麦克风

于 2013-04-30T17:54:14.033 回答