簡體   English   中英

數據未呈現

[英]Data not rendering

我有一個網站,該網站在可過濾列表中顯示數據。 當應用過濾器時,我希望將其作為參數附加到URL。 我已經為此服務:

app.factory('urlFilter', ['$location', function ($location) {
    var urlParams = $location.search();
    return function ($scope, myUrlParams) {
        angular.forEach(myUrlParams, function (param) {
            $scope[param] = isset(urlParams[param]) ? urlParams[param] : 0;

            $scope.$watch(param, function (value) {
                if (isset(value)) {
                    $location.search(param, value);
                }
            });
        });
    };
}]);

urlFilter是控制器中最后調用的東西:

urlFilter($scope, ['company_id']);

在控制器中,我獲取資源並在監視中設置company_id 使用下拉列表更新company_id 每當company_id更新時,我都會重新獲取資源:

$scope.$watch('company_id', function (companyId) {
    if (!isset(companyId)) {
        return;
    }

    Api.resource.query({company_id: companyId}, function (data) {
        $scope.resources = data;
    });
});

這種方法在我的本地主機環境中完美工作。 但是,每當我將其上傳到生產環境時,它都會起作用。 如果我更換公司,則會重新查詢資源,並正確設置URL參數。 如果我使用其中的URL參數刷新頁面,則會看到使用Chrome調試工具使用正確的company_id重新查詢了資源,並且響應正常。 但是,視圖不會更新,即資源列表為空,並且在公司下拉列表中最初未設置公司。

我做錯了什么? 有沒有更好的方法? 我沒有使用角度布線。

注意:isset()是我自己編寫的函數。

使用從$location收集的值時添加parseInt()進行了修復,即:

$scope[param] = isset(urlParams[param]) ? parseInt(urlParams[param]) : 0;

暫無
暫無

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

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