我正在使用淘汰赛创建一个新应用,并且遇到了一个非常奇怪的错误。我使用淘汰赛已有一段时间,以前从未遇到过此错误。
每当我尝试使用“ $ 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);
})
最佳答案
我知道这是一篇旧文章,但是我遇到了同样的问题并找到了解决方案。
由于PHP模板将$
视为PHP变量,因此您所需要做的就是用$
替代其html代码$
。
所以不要使用
$parent
$root
利用
$parent
$root
关于javascript - knockout 意外标识符“。”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26600094/