【问题标题】:Making widget a child of new widget使小部件成为新小部件的子级
【发布时间】:2011-09-13 05:18:32
【问题描述】:

情况是这样的。我的公司有一些小部件控件已经使用了一年左右。我被要求向小部件添加“搜索功能”。到目前为止,小部件位于通过 cookie 将字段传递到其中的页面上。所以我的问题是,有没有办法在模板内创建新的小部件,它引用旧的小部件并在运行时分配它的属性?

这是一些示例

dojo.provide("company.billing.paymentSearch"); 
dojo.require("dijit._Widget"); 
dojo.require("dijit._Templated"); 
dojo.require("company.test.inquiry"); 

dojo.declare( 
    "company.billing.paymentSearch", 
    [dijit._Widget, dijit._Templated], 
{ 
    token: "", 
    serviceUrl: "", 

    templatePath: dojo.moduleUrl( 
        "company.billing", 
        "templates/paymentSearch.html" 
    ), 

    constructor: function(params, node) { 
        var self = this; 

        function onLoad() { 
            self.inquiryWidget.token = self.token; 
            self.inquiryWidget.serviceUrl = self.serviceUrl; 
            self.inquiryWidget.brandId = ""; 
            self.inquiryWidget.agencyAccountNumber = ""; 
            self.inquiryWidget.billingAccountNumber = ""; 


            self.paymentWidget.token = self.token; 
            self.paymentWidget.serviceUrl = self.serviceUrl 
        } 

        dojo.addOnLoad(onLoad); 
    }, 
    paymentSearch: function() { 
        var self = this; 
        self.inquiryWidget.billingAccountNumber = self.accountNumber; 

    } 
} 
); 

那么我的模板将是

<div>
<div style="float:left; width:20%; border: 1px solid #CCCCCC;">
    <center>
                    Make a Payment 

    </center>
    <br />

        Account Number 

    <br />
    <input style="width:85%" type="text" dojoattachpoint="accountNumber" />
    <br />
    <div class="searchButton">                                

    </div>
</div>
<div style="float:right; width:79%">
    <div id="inquiryWidget" 
        dojoType="company.billing.inquiry" 
        billingAccountNumber="" 
        agencyAccountNumber="" 
        brandId="" 
        waitPanelText="Loading ..." 
        showAccountSummary = "true" 
        showAccountHistory = "false" 
        token="" 
        serviceUrl="">
    </div>  
</div>        

我想做的是点击搜索按钮,将属性添加到inquiryWidget并启动它。这样的事情可能吗?

【问题讨论】:

    标签: javascript dojo widget


    【解决方案1】:

    您可以像这样以编程方式创建小部件:

    在模板中:

    <div id="inquiryWidget" dojoAttachPoint="inquiryNode">
    

    在 onLoad 函数中:

    function onLoad() {
        self.inquiryWidget = new company.billing.inquiry({  
            token: self.token, 
            serviceUrl: self.serviceUrl 
        }, self.inquiryNode);
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      • 1970-01-01
      • 2020-01-01
      • 2023-03-17
      • 1970-01-01
      相关资源
      最近更新 更多