gpt4 book ai didi

javascript - 矩形方法被触发两次

转载 作者:行者123 更新时间:2023-11-28 15:48:03 25 4
gpt4 key购买 nike

我有以下示例:

var loadUserWidget;

loadUserWidget = function() {
console.log(Restangular.one());
if (!$scope.i) {
$scope.i = 0;
}
console.log($scope.i);
return $scope.i = $scope.i + 1;
};

loadUserWidget()

我得到以下console.log

Object {id: undefined, route: undefined, getRestangularUrl: function, getRequestedUrl: function, addRestangularMethod: function…} cache_list_controller.js?body=1:276

0 cache_list_controller.js?body=1:280

Object {id: undefined, route: undefined, getRestangularUrl: function, getRequestedUrl: function, addRestangularMethod: function…} cache_list_controller.js?body=1:276

1 cache_list_controller.js?body=1:280

您可以看到 restangular 方法被触发了两次,但我似乎无法确定原因。

更新:

Controller :

bbControllers.controller('CacheListController', [
'$scope', 'Restangular', '$rootScope', 'Snippet', '$modal', '$templateCache', "$window", 'Widget', '$sce', '$location', function($scope, Restangular, $rootScope, Snippet, $modal, $templateCache, $window, Widget, $sce, $location) {
var loadUserWidget;
loadUserWidget = function() {
console.log(Restangular.one());
if (!$scope.i) {
$scope.i = 0;
}
$scope.i = $scope.i + 1;
return console.log($scope.i);
};
return loadUserWidget();
}
]);

app.js

var bbPlnkr = angular.module('BBPlnkr', ['BB', 'restangular', 'ngRoute', 'xeditable', 'ngSanitize']);

bbPlnkr.config(function ($routeProvider, $locationProvider, RestangularProvider) {
$routeProvider
.when('/edit', {
templateUrl: '../assets/index.html',
controller: 'CacheListController',
reloadOnSearch: false
})
.when('/edit/:id', {
templateUrl: '../assets/index.html',
controller: 'CacheListController'
})
.when('/invitation/:url', {
templateUrl: '../assets/invitation-detail.html',
controller: 'InvitationController'
})
.otherwise({
redirectTo: '/edit'
});
$locationProvider.html5Mode(true);
});

最佳答案

当在模板中使用 ng-controller 指令并使用 $routeProvider 声明路由时,将会有两个 Controller 实例,并且它们都会触发 Restangular请求。

如果你这样做

connsole.log($scope.$id);

您应该看到两个不同的值,因为有两个不同的 Controller 。

在使用 $routeProvider 时不要使用 ng-controller

关于javascript - 矩形方法被触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21527427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com