2014-01-22 2 views
2

Я хочу использовать безопасное связывание с нокаутом. Для этого я использую knockout-secure-binding.js.Knockout.js надежное связывание

Кто мог бы объяснить, почему следующий код не работает? он выдает ошибку `

Uncaught # < Object> нокаута-Secure-binding.js: 74`

после строки ko.applyBindings(new viewModel());

<html> 
<head> 
    <title></title> 
    <script src="scripts/knockout-3.0.0-min.js"></script> 
    <script src="knockout-secure-binding-master/dist/knockout-secure-binding.js"></script> 

</head> 
<body> 
    <button type="button" data-sbind="sbtnClick">button</button> 

    <script> 
     var bindings = { 
      sbtnClick: function() { 
       return {click: this.btnClick}; 
      } 
     }; 

     var viewModel = function() { 
      this.btnClick = function() { 
       alert('clicked'); 
      }; 
     }; 

     ko.bindingProvider.instance = new ko.secureBindingsProvider(bindings); 
     ko.applyBindings(new viewModel()); 
    </script> 

</body> 
</html> 

ответ

2

Вам еще нужно выписывать название обработчика привязки click:

<button type="button" data-sbind="click: btnClick">button</button> 

И вам не нужно весь этот bindings объект с sbtnClick, просто написать:

var viewModel = function() { 
    this.btnClick = function() { 
     alert('clicked'); 
    }; 
}; 

ko.bindingProvider.instance = new ko.secureBindingsProvider(); 
ko.applyBindings(new viewModel()); 

Demo JSFiddle.

+0

awesome! спасибо :) – 31415926

Смежные вопросы