Dojox/mvc /在型号范围内

Phi*_*hix 2 model-view-controller dojo

在dojox/mvc包中使用Stateful对象时,声明性示例似乎在全局命名空间中具有目标模型(在没有"var"关键字的情况下定义).这通过污染全局命名空间违反了良好Javascript设计的一般做法,更不用说使用不同的模型变得困难和混乱.

我的问题是,()声明的范围是什么,以及如何使用位于特定上下文/范围内的模型?

http://dojotoolkit.org/reference-guide/1.9/dojox/mvc.html#id6

asu*_*doh 6

其中DojoX中/ MVC /在 API在通常用于是数据道场道具.在我脑海中谈到在那里设置"范围"时有三件事情:

  1. 与您一起运行Dojo解析器parser.parse(rootNode, {propsThis: scopeObj});可以thisdata-dojo-props中指定对象.以这种方式data-dojo-props="widgetProp: at(this, 'scopeObjProp')"指向一处房产scopeObj.
  2. widgets-in-template中,data-dojo-props="widgetProp: at(this, 'widgetsInTemplateProp')"指向widgets-in-template实例中的属性.
  3. 相对数据绑定target通过"rel:"特殊语法使DOM中的属性在DOM中引用.将对象设置为该target属性,registry.byId("scopeWidget").set("target", {First: "John", Last: "Doe"});如下例所示,将填充以下值<input>:

    <script type="dojo/require">at: "dojox/mvc/at"</script>
    <div id="scopeWidget"
     data-dojo-type="dijit/_WidgetBase"
     data-dojo-props="target: {}">
        <div>
            First:
            <input data-dojo-type="dijit/form/TextBox"
             data-dojo-props="value: at('rel:', 'First')">
        </div>
        <div>
            Last:
            <input data-dojo-type="dijit/form/TextBox"
             data-dojo-props="value: at('rel:', 'Last')">
        </div>
    </div>
    
    Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

最好的,晃