物件的屬性值是陣列,如何使用ko跨頁面繫結

2022-09-02 04:33:12 字數 1827 閱讀 7233

問題描述:

資料型別是 result = ,...],'key2':[,...],...},

需轉換成dataobj = ;

頁面:mainfrom.js,mainfrom.html,subto.js,subto.html;

將在mainfrom.js中查詢到的dataobj 繫結到subto.html上。

js檔案的結構符合amd規範,如下:

1 define([ 'jquery', 'knockout', 'html檔案路徑+檔名.html'], function($, ko, template) ;

6 var init = function(args) ;

9 return;

14 });

解決方法:

1. 在mainfrom.js中查詢到result的值,將result的屬性對應的值轉為observablearray型別。使用ajax查詢;

2. 使用require(,function(){})呼叫subto.html,並將dataobj的屬性附加到subto.js的viewmodel上;

**如下:

1 define([ 'jquery', 'knockout', 'html檔案路徑+檔名.html'], function($, ko, template) ;//根據需要修改

13 require(["subto路徑+subto(不加.html字尾)"], function(module)

18

19 $("#subtodiv").html(module.template);//載入subto的區域,module.template是subto.html

20 module.init(args);的入口

21 });

22 }

23 };

24 var init = function(args) ,//傳遞到後台的引數

29 success :function(result)

35 }

36 }

37 });

38 };

39 return;

44 });

這時subto的viewmodel有了key1,key2,...等ko陣列,將它們繫結到subto.html對應的select標籤上

3. 繫結

1

<

div>

2<

select

data-bind

="foreach:key1()"

>

3<

option

data-bind

="attr:,text:name"

>

option

>

4select

>

5<

select

data-bind

="foreach:key2()"

>

6<

option

data-bind

="attr:,text:name"

>

option

>

7select

>

8div

>

為了得到而努力

2018-07-11

合併陣列物件中相同的屬性值

面試題中往往會遇到這樣的筆試題,將以下陣列物件合併相同值 var arr 在實際專案中,我們經常會遇到這種格式的資料,這種格式讓人閱讀起來很不直觀,而且不利於 的維護。廢話不多說了直接上 第一種方式 var res var narr for var i 0 i else console.log na...

修改物件的某個屬性的值 什麼是類,什麼是物件

一什麼是類?類是物件的 靈魂 物件可以是任何事物,而類不會做任何事情,也不會占用記憶體,只有當類成為物件並使用set語句和new關鍵字例項化為具體物件後,才能做事情並占用記憶體。把類例項化為具體物件的語法為 dim c as class set c new class 上述語句建立了乙個名為c的物件...

js 向陣列物件中新增屬性和屬性值

let resultlist resultlist.foreach tem 迴圈向陣列resultlist中新增age屬性let resultlist resultlist.foreach item 向陣列中的子屬性新增屬性 var jsonstr json.stringify resultlist...