簡體   English   中英

MVC 5使用spa模板無法顯示視圖

[英]MVC 5 Using spa template cannot get to display views

我遇到的問題是我的所有視圖都顯示出來了。 (沒有js錯誤)無論如何,當我去產品或家里時,兩個視圖都顯示出來,我不明白為什么。 是不是ko:應該限制一個或另一個視圖? 我錯過了什么?

Index.cshtml

@section SPAViews {
    @Html.Partial("_Home")
    @Html.Partial("_Products")
}
@section Scripts{
    @Scripts.Render("~/bundles/knockout")
    @Scripts.Render("~/bundles/app")
}

_Home.cshtml

<!-- ko with: home -->
...
<!-- /ko -->

_Products.cshtml

<!-- ko with: products -->
...
<!-- /ko -->

products.viewmodel.js

function ProductsViewModel(app, dataModel) {
    var self = this;

    self.query = ko.observable();

    Sammy(function () {
        this.get('#products', function () {
            $.ajax({
                method: 'get',
                url: app.dataModel.productsUrl,
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    console.log(data);
                    self.query(data.query);

                }
            });
        })
    });

    return self;
}

app.addViewModel({
    name: "Products",
    bindingMemberName: "products",
    factory: ProductsViewModel
});

home.viewmodel.js

function HomeViewModel(app, dataModel) {
    var self = this;

    Sammy(function () {
        this.get('#home', function () {
            console.log('home');
        });
        this.get('/', function () { this.app.runRoute('get', '#home') });
    });

    return self;
}

app.addViewModel({
    name: "Home",
    bindingMemberName: "home",
    factory: HomeViewModel
});

捆綁:

 bundles.Add(new ScriptBundle("~/bundles/app").Include(
        "~/Scripts/sammy-{version}.js",
        "~/Scripts/app/common.js",
        "~/Scripts/app/app.datamodel.js",
        "~/Scripts/app/app.viewmodel.js",
        "~/Scripts/app/home.viewmodel.js",
        "~/Scripts/app/products.viewmodel.js",
        "~/Scripts/app/_run.js"));

這可能是因為一個關於誤會with結合。 來自文檔

with綁定創建一個新的綁定上下文,以便后代元素綁定在指定對象的上下文中。

所以這只是切換上下文。 它仍將顯示兩個部分。

你可能在if綁定 (和相應的ifnot綁定 )之后,記錄如下:

if綁定會導致標記的一部分出現在文檔中(並且應用其數據綁定屬性),僅當指定的表達式求值為true時...

if綁定你應該使用它,並將表達式更改為計算為布爾值的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM