添加到我的项目自定义属性中的html页面,它将由它自己调用(如数据绑定)

时间:2013-09-16 08:02:47

标签: javascript html5 durandal

我想在我的项目中创建自定义属性,该属性将在“data-bind”属性为calles的同一时刻调用。 我希望你能理解我,所以请阅读我的解释: 我知道如何创建自定义属性并知道如何使用它。但问题是,我的项目有很多页面。我不希望所有团队成员如何使用我的属性(称为“data-re”)来调用我的函数。 我希望和“data-bind”属性一样,任何方式解决,你不必每个页面调用它,所以我想找到写我的代码的地方,这个代码将在每一页完成无需特别编写。 这是我的代码:

    <input type="text" data-re="value:40"/>


    function  compositionComplete(){ 

var dict = cacheManager.get(cacheItems.DICT);;

var reElms = document.querySelectorAll('[data-re]');
for (var n = 0; n < resElms.length; n++) {
    var reEl = reElms[n];
    if (n != 1) {

        var dataRe = reEl.getAttribute('data-re');
        while (dataRe) {
            var attr = dataRe;
            var cutPlace = dataRe.lastIndexOf(',');
            if (cutPlace >= 0) {
                attr = reKey.substring(cutPlace, dataRe.length - 1);
            }
            var reKey = attr.substring(attr.indexOf(':') + 1, attr.length);
            var attrName = attr.substring(0, attr.indexOf(':'));
            reEl[attrName] = dict[reKey].Descript;
            dataRe = dataRe.substring(attr.length, dataRe.length);
            if (cutPlace)
                dataRe = dataRe.substring(0, 1);
        }
    }
}

我的项目是在durandal。到目前为止,“data-re”属性背后的代码位于“compositionComplete”中。我不想在我的页面中写任何关于它的内容!我该怎么办? 谢谢, Rut Nativ。

1 个答案:

答案 0 :(得分:0)

您可以使用liveQuery并在添加到页面的每个html元素后跟踪:

   $("[data-res]").livequery(function () {
          your logic code...
   });