Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WinJS更改模板';ListView中specedicitem的s元素_Javascript_Data Binding_Microsoft Metro_Winjs - Fatal编程技术网

Javascript WinJS更改模板';ListView中specedicitem的s元素

Javascript WinJS更改模板';ListView中specedicitem的s元素,javascript,data-binding,microsoft-metro,winjs,Javascript,Data Binding,Microsoft Metro,Winjs,好了,这是我的问题,我找不到任何解决办法。 我的Gridview有此模板(用于数据绑定)的问题: <div id="mytemplate" data-win-control="WinJS.Binding.Template"> <div id="questions" class="tweet"> <img src="#" style="-ms-grid-row-span: 2; width: 64px; height: 64px; margin

好了,这是我的问题,我找不到任何解决办法。 我的Gridview有此模板(用于数据绑定)的问题:

<div id="mytemplate" data-win-control="WinJS.Binding.Template">
    <div id="questions" class="tweet">
        <img src="#" style="-ms-grid-row-span: 2; width: 64px; height: 64px; margin-right: 10px;" data-win-bind="src:picture_url">
        <h2 style="width:auto;-ms-grid-column: 2; -ms-grid-column-span: 1; margin-left: 1px; margin-right: 0px; -ms-grid-row-span: 2;" data-win-bind="textContent:type"></h2>   
        <label id="answer" ">Message</label>            
      </div>    
</div>


我认为最好的选择是使用MVVM方法:将每个项绑定到一个实体,并让该实体公开一个名为Text的可观察属性,将弹出按钮绑定到另一个可观察属性SelectedItem,该属性将使用当前选定的项进行更新,并使用双向绑定在弹出按钮文本输入更改时更新选定项的文本属性。如果您需要它,我在这里写了关于双向绑定的博客:

建议在弹出式html中使用
数据win bind
属性。下面的代码将在弹出按钮的输入元素中显示item.title属性

test.html:
<div class="edit-item" data-win-control="WinJS.UI.Flyout">
        <input type="text" class="item-text" data-win-bind="value: title" />
        <input type="submit" class="submit" />
</div>

test.js: event handler for iteminvoked event for the listview control
_oniteminvoked: function oniteminvoked(event)
{
    var item = this.items.getAt(event.detail.itemIndex); // assuming items is the list binding to the list view
    var editItemFlyoutElement = this.element.querySelector('.edit-item');
    WinJS.Binding.processAll(editItemFlyoutElement, item);
    editItemFlyoutElement.winControl.show(this.element);
}
test.html:
test.js:listview控件的iteminvoked事件的事件处理程序
_oniteminvoked:函数oniteminvoked(事件)
{
var item=this.items.getAt(event.detail.itemIndex);//假设items是列表视图的列表绑定
var editItemFlyoutElement=this.element.querySelector('.edit item');
WinJS.Binding.processAll(editItemFlyoutElement,item);
editItemFlyoutElement.winControl.show(this.element);
}

HTH

对这个建议考虑了很多,它非常有用,我想到了MVVM,但我忙于理解新概念。我将对此进行测试。如果您被安装,我已经创建了一个小型MVVM框架: