2013-04-30 23 views
0

有没有一种方法来实现类似于我们在Flex中的数据绑定?DataBinding支持

我注意到,在lesson 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 Lambriola。

+1

你可以发布你试过的代码吗? – Dutts 2013-04-30 10:55:02

回答

0

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

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

所以,技巧(和randori的难题)不是创建实现。它有一个可以从AS使用但可以与其他组件集共享的应用程序,您应该使用多个库。

一旦这个发布,列表,模板和其他randori行为将被更新使用它。

现在,将数据重新分配给行为一旦发生变化,就会有很小的代价。

Mike