0

http://www.dotnetcurry.com/ShowArticle.aspx?ID=847の記事を参考に、サンプルアプリを開発してみました。物事を分けておくために、javascript コードを別の js ファイルEmployeeInfo.jsに移動しようとし、以下に示すように Create.cshtml の head セクションで js ファイルを参照しました。

<head>    
     <script src="~/Scripts/EmployeeInfo.js"></script>
</head>

しかし、データベースから既存のレコードを表示できません。コードをデバッグすると、GetEmployees() メソッドが呼び出され、data.length も 0 より大きいことがわかりましたが、データをテーブルにバインドしてすべてのレコードを表示することはできません。これに関するヘルプをいただければ幸いです。

<tbody data-bind="foreach: Employees">
                                <tr style="border: solid" data-bind="click: $root.getselectedemployee" id="updtr">
                                    <td><span data-bind="text: EmpNo"></span></td>
                                    <td><span data-bind="text: EmpName"></span></td>
                                    <td><span data-bind="text: Salary"></span></td>
                                    <td><span data-bind="text: DeptName"></span></td>
                                    <td><span data-bind="text: Designation"></span></td>
                                    <td>
                                        <button data-bind="click: $root.deleterec">Delete</button></td>
                                </tr>
                            </tbody>

誰でも私が問題を理解するのを手伝ってくれますか?

よろしくお願いいたします。 サントッシュ・クマール・パトロ

4

1 に答える 1

0

動作するコードが表示されない場合、ページがレンダリングされる前に Bindings を適用していると推測されます。ステップ 8 の指示に注意してください。

ステップ 8: body タグを閉じる前に、ViewModel を定義するブロックを次のように定義します。

コードを別のファイルに移動したのは良いことですが、head タグに移動しました。操作の DOM 順序は、 がレンダリングする前にこのスクリプトをロードして実行する<body>ため、ko.applyBindings は何もバインドしません。2 つのオプションがあります。

スクリプト宣言を body 終了タグの直前に移動します。

    <script src="~/Scripts/EmployeeInfo.js"></script>
</body>

または、jQuery を使用していると仮定すると、ドキュメント準備完了関数内のこのファイルにスクリプト コードをラップします。

$(function (){
    // ... Your code ...
});
于 2013-09-14T20:07:54.770 に答える