คำถามติดแท็ก knockout.js

Knockout.js เป็นไลบรารี JavaScript แบบโอเพนซอร์สสำหรับ UI แบบไดนามิกโดยใช้รูปแบบ Model-View-View Model (MVVM)

4
คุณสามารถโทร ko.applyBindings เพื่อผูกมุมมองบางส่วนได้หรือไม่?
ฉันใช้ KnockoutJS และมีมุมมองหลักและมุมมองโมเดล ฉันต้องการไดอะล็อก (หนึ่งใน jQuery UI) เพื่อป็อปอัพพร้อมกับมุมมองอื่นซึ่งจะแยกโมเดลมุมมองชายด์ที่แยกต่างหาก HTML สำหรับเนื้อหาไดอะล็อกถูกเรียกคืนโดยใช้ AJAX ดังนั้นฉันต้องการที่จะสามารถเรียกใช้งานได้ko.applyBindingsเมื่อคำขอเสร็จสมบูรณ์และฉันต้องการผูกโมเดลมุมมองลูกไว้กับส่วนของ HTML ที่โหลดผ่าน ajax ภายใน div ไดอะล็อก เป็นไปได้จริงหรือฉันต้องโหลดมุมมองและมุมมองแบบจำลองทั้งหมดของฉันเมื่อหน้าเว็บเริ่มโหลดและโทรko.applyBindingsครั้งเดียว
257 ajax  html  knockout.js 

1
อะไรคือความแตกต่างที่สำคัญระหว่าง Meteor, Ember.js และ Backbone.js [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา การเรียนรู้ Ember.js / Backbone.js อยู่ในรายการที่ต้องทำของฉันมาระยะหนึ่งแล้ว ตอนนี้Meteorออกไปแล้วฉันแค่สงสัยว่าใครที่มีประสบการณ์เกี่ยวกับ Meteor, Ember.js และ Backbone.js สามารถสรุปความแตกต่างที่สำคัญข้อดีข้อเสียของกรอบ JavaScript ทั้งสามนี้สำหรับบุคคลที่ไม่มีประสบการณ์ใด ๆ เลย โดยเฉพาะฉันอยากจะรู้ว่าภารกิจใดที่แต่ละเฟรมเวิร์กเหมาะกว่าและทำไมคนอื่นถึงไม่ทำงาน แก้ไข: ตอนนี้ฉันอ่าน Meteor เพิ่มเติมเล็กน้อยดูเหมือนว่าจะคล้ายกับ Knockout.js มากกว่า Backbone.js ดังนั้นการเปรียบเทียบกับ Knockout.js ก็ยินดีเช่นกัน

2
การรับ“ คำขอ JSON มีขนาดใหญ่เกินกว่าที่จะทำการ deserialized ได้”
ฉันได้รับข้อผิดพลาดนี้: คำร้องขอ JSON มีขนาดใหญ่เกินกว่าที่จะทำการ deserialized นี่คือสถานการณ์ที่เกิดขึ้น ฉันมีชั้นของประเทศที่เก็บรายชื่อของพอร์ตการขนส่งของประเทศนั้น public class Country { public int Id { get; set; } public string Name { get; set; } public List<Port> Ports { get; set; } } ฉันใช้ KnockoutJS ทางฝั่งไคลเอ็นต์เพื่อสร้างรายการแบบหล่นลง ดังนั้นเรามีอาร์เรย์ของดรอปดาวน์สองตัวโดยที่อันแรกคือประเทศและอันที่สองคือพอร์ตของประเทศนั้น ทุกอย่างทำงานได้ดีจนถึงตอนนี้สคริปต์ฝั่งไคลเอ็นต์ของฉัน: var k1 = k1 || {}; $(document).ready(function () { k1.MarketInfoItem = function …

5
KnockOutJS - ViewModels หลายรายการในมุมมองเดียว
ฉันคิดว่าแอปพลิเคชันของฉันมีขนาดค่อนข้างใหญ่ในขณะนี้มีขนาดใหญ่เกินไปที่จะจัดการแต่ละมุมมองด้วย ViewModel เดียว ดังนั้นฉันจึงสงสัยว่าจะสร้าง ViewModels หลายรายการและโหลดทั้งหมดลงในมุมมองเดียวได้อย่างไร ด้วยหมายเหตุที่ฉันยังต้องสามารถส่งผ่านข้อมูลX ViewModelไปยังข้อมูลY ViewModelดังนั้น ViewModels แต่ละรายการจะต้องสามารถสื่อสารระหว่างกันหรืออย่างน้อยก็ต้องระวังซึ่งกันและกัน ตัวอย่างเช่นฉันมีรายการ<select>แบบหล่นลงที่เลือกแบบเลื่อนลงมีสถานะที่เลือกซึ่งช่วยให้ฉันผ่าน ID ของรายการที่เลือกในการ<select>โทร Ajax อื่นใน ViewModel แยกต่างหาก .... จุดใด ๆ ในการจัดการกับ ViewModels จำนวนมากในมุมมองเดียวชื่นชม :)

11
วิธีการดีบักข้อผิดพลาดการผูกแม่แบบสำหรับ KnockoutJS?
ฉันมีปัญหาในการแก้ไขข้อบกพร่องในแม่แบบ KnockoutJS ว่าฉันต้องการผูกกับคุณสมบัติที่เรียกว่า " items" แต่ในเทมเพลตฉันพิมพ์ผิดและผูกเข้ากับคุณสมบัติ (ไม่มีอยู่) " item" การใช้ดีบักเกอร์ Chrome บอกฉันเท่านั้น: "item" is not defined. มีเครื่องมือเทคนิคหรือรูปแบบการเข้ารหัสที่ช่วยให้ฉันได้รับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาการผูกหรือไม่

2
ความแตกต่างระหว่างโมเดลการดูสิ่งที่น่าพิศวงที่ประกาศเป็นตัวอักษรออบเจกต์และฟังก์ชั่น
ในสิ่งที่น่าพิศวง js ฉันเห็นดูแบบจำลองประกาศเป็น: var viewModel = { firstname: ko.observable("Bob") }; ko.applyBindings(viewModel ); หรือ: var viewModel = function() { this.firstname= ko.observable("Bob"); }; ko.applyBindings(new viewModel ()); ความแตกต่างระหว่างสองถ้าอะไร? ฉันพบการสนทนานี้ในกลุ่ม google knockoutjs แต่มันไม่ได้ให้คำตอบที่น่าพอใจ ฉันสามารถดูเหตุผลหากฉันต้องการเริ่มต้นโมเดลด้วยข้อมูลบางอย่างตัวอย่างเช่น: var viewModel = function(person) { this.firstname= ko.observable(person.firstname); }; var person = ... ; ko.applyBindings(new viewModel(person)); แต่ถ้าฉันไม่ทำอย่างนั้นมันเป็นเรื่องสำคัญที่ฉันจะเลือกสไตล์?

4
ฉันจะทำให้ Knockout JS ไปยัง data-bind บน keypress แทนการสูญเสียโฟกัส
ตัวอย่างของสิ่งที่น่าพิศวง jsทำงานเมื่อคุณแก้ไขฟิลด์และกด TAB ข้อมูล viewmodel และด้วยเหตุนี้ข้อความด้านล่างของฟิลด์จึงถูกอัพเดต ฉันจะเปลี่ยนรหัสนี้เพื่อให้ข้อมูลมุมมองโมเดลได้รับการอัปเดตทุกปุ่มกดได้อย่างไร <!doctype html> <html> <title>knockout js</title> <head> <script type="text/javascript" src="js/knockout-1.1.1.debug.js"></script> <script type="text/javascript"> window.onload= function() { var viewModel = { firstName : ko.observable("Jim"), lastName : ko.observable("Smith") }; viewModel.fullName = ko.dependentObservable(function () { return viewModel.firstName() + " " + viewModel.lastName(); }); ko.applyBindings(viewModel); } </script> </head> <body> …

8
เป็นไปได้ไหมที่ data-bind จะปรากฏต่อการปฏิเสธ (“!”) ของคุณสมบัติ ViewModel บูลีน?
ฉันต้องการใช้พร็อพเพอร์ตี้ใน ViewModel ของฉันเพื่อสลับไอคอนที่จะแสดงโดยไม่ต้องสร้างคุณสมบัติที่คำนวณได้แยกจากอินเวอร์ส เป็นไปได้ไหม <tbody data-bind="foreach: periods"> <tr> <td> <i class="icon-search" data-bind="visible: !charted, click: $parent.pie_it"></i> <i class="icon-remove" data-bind="visible: charted, click: $parent.pie_it"></i> </td> </tr> </tbody> My ViewModel มีระยะเวลาคุณสมบัติซึ่งเป็นอาร์เรย์ของเดือนเช่นนี้ var month = function() { this.charted = ko.observable(false); };
162 knockout.js 

3
วิธีการบังคับให้รีเฟรชมุมมองโดยไม่ให้ทริกเกอร์โดยอัตโนมัติจากสิ่งที่สังเกตได้?
หมายเหตุ:ส่วนใหญ่ใช้สำหรับการดีบักและทำความเข้าใจ KnockoutJS มีวิธีการขอให้สิ่งที่น่าพิศวงอย่างชัดเจนเพื่อรีเฟรชมุมมองจากรูปแบบมุมมอง (ผูกไว้แล้ว)? ฉันกำลังมองหาบางสิ่งที่ชอบ: ko.refreshView(); ฉันเข้าใจว่านี่ไม่ใช่การใช้สิ่งที่น่าพิศวง แต่ฉันยังต้องการทราบว่ามีวิธีการดังกล่าวสำหรับการแก้ไขจุดบกพร่องและการเรียนรู้หรือไม่
151 knockout.js 

12
Javascript เทียบเท่ากับ C # LINQ Select
ติดตามคำถามนี้ได้ที่นี่: การใช้การเชื่อมโยงที่เลือกไว้ในสิ่งที่น่าพิศวงพร้อมรายการช่องทำเครื่องหมายจะตรวจสอบช่องทำเครื่องหมายทั้งหมด ฉันได้สร้างช่องทำเครื่องหมายโดยใช้สิ่งที่น่าพิศวงที่อนุญาตให้เลือกจากอาร์เรย์ การทำงานที่นำมาจากโพสต์ด้านบน: http://jsfiddle.net/NsCXJ/ มีวิธีง่ายๆในการสร้างอาร์เรย์ของ ID ของผลไม้หรือไม่? ฉันอยู่บ้านมากขึ้นด้วย C # ที่ซึ่งฉันจะทำอะไรบางอย่างตามแนวของ selectedFruits.select(fruit=>fruit.id); มีวิธีการ / ฟังก์ชันสำเร็จรูปสำหรับการทำสิ่งที่คล้ายกันกับ javascript / jquery หรือไม่? หรือตัวเลือกที่ง่ายที่สุดคือการวนซ้ำรายการและสร้างอาร์เรย์ที่สอง? ฉันตั้งใจจะโพสต์อาร์เรย์กลับไปที่เซิร์ฟเวอร์ใน JSON ดังนั้นฉันจึงพยายามย่อขนาดข้อมูลที่ส่ง

6
TypeScript พร้อม KnockoutJS
มีตัวอย่างของการใช้ TypeScript กับ KnockoutJS หรือไม่? ฉันแค่อยากรู้ว่าพวกเขาจะทำงานร่วมกันอย่างไร แก้ไข นี่คือสิ่งที่ฉันมีดูเหมือนว่าจะทำงาน declare var ko: any; declare var $: any; class ViewModel { x = ko.observable(10); y = ko.observable(10); } $(() => { ko.applyBindings(new ViewModel()); }); สิ่งนี้จะสร้างเป็น Javascript ต่อไปนี้: var ViewModel = (function () { function ViewModel() { this.x = ko.observable(10); this.y = ko.observable(10); …

13
เหตุการณ์การเปลี่ยนแปลง jQuery UI datepicker ไม่จับโดย KnockoutJS
ฉันพยายามใช้ KnockoutJS กับ jQuery UI ฉันมีองค์ประกอบอินพุตที่แนบ datepicker ฉันกำลังดำเนินการอยู่knockout.debug.1.2.1.jsและดูเหมือนว่าเหตุการณ์การเปลี่ยนแปลงจะไม่ถูกจับโดย Knockout องค์ประกอบมีลักษณะดังนี้: <input type="text" class="date" data-bind="value: RedemptionExpiration"/> ฉันได้ลองเปลี่ยนvalueUpdateประเภทเหตุการณ์ แต่ก็ไม่เกิดประโยชน์ ดูเหมือนว่า Chrome จะทำให้เกิดfocusเหตุการณ์ก่อนที่จะเปลี่ยนค่า แต่ IE ไม่ทำ มีวิธีการ Knockout บางวิธีที่ "rebinds all the bindings" หรือไม่? ในทางเทคนิคฉันต้องการเพียงค่าที่เปลี่ยนแปลงก่อนที่จะส่งกลับไปที่เซิร์ฟเวอร์ ดังนั้นฉันจึงสามารถใช้วิธีแก้ปัญหาแบบนั้นได้ ฉันคิดว่าปัญหาดังกล่าวเป็นความผิดของผู้ระบุวันที่ แต่ฉันไม่สามารถหาวิธีแก้ไขได้ ความคิดใด ๆ ?

3
วิธีใช้ knockout.js กับ ASP.NET MVC ViewModels?
เงินรางวัล มันไม่นานมานี้และฉันยังมีคำถามที่ค้างอยู่สองสามข้อ ฉันหวังว่าโดยการเพิ่มรางวัลบางทีคำถามเหล่านี้จะได้รับคำตอบ คุณใช้ html helpers กับ knockout.js อย่างไร เหตุใดเอกสารจึงจำเป็นต้องพร้อมใช้งาน (ดูการแก้ไขครั้งแรกสำหรับข้อมูลเพิ่มเติม) ฉันจะทำสิ่งนี้ได้อย่างไรถ้าฉันใช้การทำแผนที่สิ่งมหัศจรรย์กับโมเดลมุมมองของฉัน ในขณะที่ฉันไม่ได้มีฟังก์ชั่นเนื่องจากการทำแผนที่ function AppViewModel() { // ... leave firstName, lastName, and fullName unchanged here ... this.capitalizeLastName = function() { var currentVal = this.lastName(); // Read the current value this.lastName(currentVal.toUpperCase()); // Write back a modified value }; ฉันต้องการใช้ปลั๊กอินเช่นฉันต้องการสามารถย้อนกลับ observables ราวกับว่าผู้ใช้ยกเลิกการร้องขอฉันต้องการที่จะสามารถกลับไปที่ค่าสุดท้าย …

6
twitter bootstrap การเติมข้อความอัตโนมัติแบบเลื่อนลง / combobox ด้วย Knockoutjs
ฉันมีข้อกำหนดที่ฉันต้องใช้ดรอปดาวน์การเติมข้อความอัตโนมัติสำหรับบูตสแตรป แต่ผู้ใช้สามารถมีข้อความในรูปแบบอิสระในเมนูแบบเลื่อนลงนั้นได้หากต้องการ ก่อนที่คุณจะคิดถึง TypeAhead ฉันสามารถใช้กล่องข้อความ Bootstrap TypeAhead ได้ แต่ฉันจำเป็นต้องมีดรอปดาวน์เนื่องจากเราต้องการให้ค่าเริ่มต้นบางค่าเป็นตัวเลือกการเริ่มต้นในกรณีที่ผู้ใช้ไม่รู้ว่าจะค้นหาอะไร ฉันใช้สิ่งนี้กับ MVC DropDownListFor เนื่องจากสร้างตัวควบคุมการเลือกสำหรับเรา ฉันพบบทความนี้ซึ่งเหมาะกับฉัน https://github.com/danielfarrell/bootstrap-combobox/pull/20 สิ่งที่ฉันต้องทำคือถอดชื่อออกจากตัวควบคุมการเลือกและตัวควบคุมก็ให้ฉันป้อนข้อความในรูปแบบอิสระ ดีทั้งหมดจนถึงตอนนี้ ตอนนี้ฉันใช้สิ่งนี้ร่วมกับ Knockoutjs ฉันผูกตัวเลือกและค่าที่เลือกกับตัวควบคุมการเลือกจากนั้นในแถวที่แสดงเทมเพลตของฉันฉันเรียกว่า (ตัวเลือก). combobox () ซึ่งทำให้ตัวเลือกควบคุม comobobox bootstrap และเพิ่มตัวควบคุมอินพุตและซ่อนตัวควบคุมการเลือกในฉาก หลัง ปัญหาตอนนี้คือเมื่อฉันพยายามดึงค่าเขาไปโพสต์ไปยังเซิร์ฟเวอร์เนื่องจากค่าที่ฉันใส่ในช่องป้อนข้อมูลไม่ใช่ตัวเลือกที่ถูกต้องจากตัวเลือกที่ฉันให้เพื่อเลือกการควบคุมจึงมักตั้งค่าเป็นตัวเลือกแรกตามค่าเริ่มต้น นี่เป็นเพราะฉันตั้งค่าการเชื่อมโยงของค่าที่เลือกบนตัวควบคุมที่เลือกไม่ใช่ในกล่องอินพุตที่สร้างโดย bootstrap-combobox.js คำถามของฉันคือฉันจะทำให้กล่องอินพุตเชื่อมโยงข้อมูลกับ porperty เดียวกันกับที่ตัวควบคุมเลือกถูกผูกไว้ได้อย่างไร ตัวเลือกอื่น ๆ ?? โปรดแจ้งให้เราทราบหากคุณต้องการคำชี้แจงเพิ่มเติมหรือมีคำถาม ช่วยแนะนำหน่อยครับ. ขอบคุณ

2
เมื่อใดจึงควรใช้ ko.utils.unwrapObservable?
ฉันได้เขียนการผูกแบบกำหนดเองโดยใช้ KnockoutJS ฉันยังไม่แน่ใจว่าเมื่อใดควรใช้ko.utils.unwrapObservable(item)การตรวจสอบโค้ดโดยทั่วไปการโทรนั้นจะตรวจสอบว่าitemเป็นสิ่งที่สังเกตได้หรือไม่ ถ้าเป็นเช่นนั้นให้ส่งคืนค่า () หากไม่ใช่ให้ส่งคืนค่า เมื่อดูที่หัวข้อ Knockout เกี่ยวกับการสร้างการเชื่อมโยงที่กำหนดเองพวกเขามีไวยากรณ์ต่อไปนี้: var value = valueAccessor(), allBindings = allBindingsAccessor(); var valueUnwrapped = ko.utils.unwrapObservable(value); ในกรณีนี้พวกเขาจะเรียกสิ่งที่สังเกตได้ผ่านทาง()แต่จะเรียกko.utils.unwrapObservableด้วย ฉันแค่พยายามจับใจความเมื่อจะใช้อย่างใดอย่างหนึ่งกับอีกอันหนึ่งหรือว่าฉันควรทำตามรูปแบบข้างต้นเสมอและใช้ทั้งสองอย่าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.