テンプレートとして HotTowel を使用して mvc アプリケーションを構築しています (デュランダル、ノックアウト、ブリーズなど)。アプリケーションはまだ準備ができていませんが、順調に進んでいます :)。1 つの機能の途中で、javascript 関数への動的呼び出しを作成する必要があります。ハード コード値を使用した呼び出しは次のようになります。
<a href="#" id="openreport"
onclick="showReport('@Url.Action("Index","Report", new { Id= 9, languageId = 2})');">Show
report</a>
上記の呼び出しは正常に機能します。ノックアウトjsを使用してonclickイベントを文字列プロパティにバインドしようとすると、問題が発生します。このようなもの:
<a href="#" id="openReport" data-bind="onclick: $root.reportUrl()" >
Show report
report url は観察可能な変数です。ここにタイプスクリプトコード:
export var reportUrl =<any> ko.observable();
export var expandRow = function (myObjectComeFromATable) {
var urlAction = '@Url.Action("Index", "Report", new { Id= ID_TO_REPLACE, languageId = LANG_TO_REPLACE }) ';
var url = "showReport('"+urlAction+"');";
reportUrl(url);
};
更新 引用符の使用は問題ありません。ノックアウト変数の値は、前に示したハードコード値と同じです。レイアウトのシンタキシスに問題があるのでしょうか?