[英]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.