3
AJAX를 통해 데이터를 받고 페이지에 표시하려고합니다. ajax 요청은 성공적이지만 knockout은 뷰를 업데이트하지 않습니다. 무엇이 문제 일 수 있습니까?Knockout.js, CoffeeScript 및 jQuery ajax가 텍스트 필드를 업데이트하지 않습니다.
소스 코드 :보기 모델
class AppViewModel
constructor: ->
@company = ko.observable {name:'n/a', tariff:'n/a', contract:'n/a', balance:'0'}
@getBriefInfo()
@companyTariff = ko.computed => "Tariff: #{@company.tariff}"
@companyBalance = ko.computed => "Total: #{@company.balance}"
getBriefInfo: ->
$.ajax
type: 'POST'
url: '/index.php/site/getCompanyShortInfo'
data: {}
dataType: 'json'
contentType: 'json'
success: (res) =>
console.log @company(), res.name, res.tariff
@company res
console.log @company(), res.name, res.tariff
$ ->
ko.applyBindings(new AppViewModel(),document.getElementById("company-info"))
소스 코드 :보기
<ul id="company-info" class="unstyled company-info">
<li data-bind="text: company.contract"></li>
<li data-bind="text: company.name"></li>
<li data-bind="text: companyBalance"></li>
<li data-bind="text: companyTariff"></li>
</ul>
또한 'companyTariff'와'companyBalance' 계산 된 관측치를 업데이트해야만 회사를 읽고 적절한 속성을 읽을 수 있습니다. 그러나 나는 coffeescript를 쓰는 것을 이해하지 못한다. (JavaScript가 내가하는 일을 이해할만큼 충분히 가깝게 보인다. 직접 쓰지 않아도된다.) –