[英]Knockout unexpected identifier “.”
我正在使用淘汰賽創建一個新應用,並且出現了一個非常奇怪的錯誤。 我使用淘汰賽已有一段時間,以前從未遇到過此錯誤。
每當我嘗試使用“ $ root”時。 偽選擇器,敲除返回我:
Uncaught SyntaxError: Unable to parse bindings.
Bindings value: click: .createAlarm
Message: Unexpected token .
在這種情況下,綁定是:
<button class='btn' data-bind='click: $root.createAlarm'>New alarm</button>
當我嘗試在foreach綁定中引用viewmodel函數時,發生了同樣的事情。
這是我的代碼:
function ViewModel() {
var self = this;
// data
// set initial time for alarm
self.alarmHour = ko.observable(moment().hours());
self.alarmMinute = ko.observable(moment().minutes());
self.alarmSecond = ko.observable(moment().seconds());
self.chosenAlarmTrack = ko.observable();
self.alarms = ko.observableArray();
// methods
self.createAlarm = function() {
var timeNow = moment()
var alarmTime = getNewTime(self.alarmHour(), self.alarmMinute(), self.alarmSecond());
var alarmTime = moment(alarmTime)
if (timeNow.isAfter(alarmTime)) {
alarmTime.add(1, "day");
}
self.alarms.push(new Alarm(alarmTime, self.chosenAlarmTrack()))
}
}
$(document).ready(function() {
var vm = new ViewModel();
ko.applyBindings(vm);
})
我懷疑這是因為在html的某處您正在為$ root重新分配上下文對象的值。 使用單等號而不是雙或三等號來檢查HTML中的綁定-
<div data-bind="visible: $root=''"></div>
如果不是這種情況,您可以發布HTML嗎?
我發現了問題-我使用的是php模板系統,當它找到“ $”字符時,就假定這是一個PHP變量。
我知道這是一篇舊文章,但是我遇到了同樣的問題並找到了解決方案。
由於PHP模板將$
視為PHP變量,因此您所需要做的就是用$
替換其html代碼$
當量。
所以不要使用
$parent
$root
采用
$parent
$root
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.