-1
我想擺脫那個錯誤,但我目前正在一個特殊的塊使用KnockoutJS。問題是,當爲數據綁定讀取數據時,我的ViewModel尚未創建。我在加載ko後綁定它。 這裏是我的HTML視圖:KnockoutJS:應用綁定後渲染原因「xxx沒有定義」
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>{% block title %}{% endblock %} - Evosphere</title>
<link rel="icon" type="image/x-icon" href="{{ asset('design/img/icons/favicon.png') }}" />
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<link href='https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300,700' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Bitter' rel='stylesheet' type='text/css'>
<link href='{{ asset("design/css/resp_lg.css") }}' media="screen and (max-width: 1550px)" rel='stylesheet' type='text/css'>
<link href='{{ asset("design/css/resp_md.css") }}' media="screen and (max-width: 1350px)" rel='stylesheet' type='text/css'>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
{% javascripts
'js/libs/*.js'
'js/Evo/BeforeInit/*/*.js'
%}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
</head>
<body>
<nav class="navbar-top">
</nav>
<div data-knockout="messenger-block">
<div id="messenger-attachment-container" class="container-messenger">
<div data-bind="foreach: conversations">
Ohoh
</div>
</div>
<div id="messenger-dialog-container" class="container-messenger-bottom">
</div>
</div>
<div class="main">
{% block body %}
{% endblock %}
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js"></script>
{% javascripts
'js/Evo/app.js'
'js/Evo/*/*.js'
%}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
{{ include('AppBundle:Javascript:init.js.html.twig') }}
{% javascripts
'js/Evo/RequireInit/Utility/*.js'
'js/Evo/RequireInit/Module/*/*.js'
'js/Evo/RequireInit/Module/bootstrap.js'
'js/Evo/RequireInit/Module/navigation.js'
'js/Evo/RequireInit/Module/feed.js'
%}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
{% block javascripts %}
{% endblock %}
</body>
</html>
這裏是我的JS:
function ConversationDialogViewModel(){
var self = this;
this.conversations = [1, 2, 3];
}
var $messegnerBlockKnockout = $('[data-knockout="messenger-block"]');
ko.cleanNode($messegnerBlockKnockout[0]);
ko.applyBindings(new ConversationDialogViewModel(), $messegnerBlockKnockout[0]);
$messegnerBlockKnockout.show();
導致問題的代碼在哪裏?什麼是'xxx'?請創建一個[最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve)。 –
對不起,我不知道如何以更好的方式來說明這一點。我只是有一個正常的HTML頁面,在它的底部,我包括淘汰賽和我的ViewModel。 – Despirithium
我們需要看到一些**代碼**。編輯您的問題以包含相關的代碼和確切的錯誤信息,否則任何人都無法幫助您。 「xxx沒有定義」可能會出現一百萬個我能想到的原因,我肯定還會有一百萬以上的原因。 –