我正在使用淘汰赛创建一个新应用,并且遇到了一个非常奇怪的错误。我使用淘汰赛已有一段时间,以前从未遇到过此错误。

每当我尝试使用“ $ 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代码&#36;

所以不要使用

$parent
$root


利用

&#36;parent
&#36;root

关于javascript - knockout 意外标识符“。”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26600094/

10-11 05:36