我有一个关于plunkr的演示,我遇到问题,而点击功能在ng-click事件函数调用两次通过检入控制台: -
<a class="btn btn-default finish" style="display:none" ng-click="result()">Finish</a>
这是我的控制器代码: -
var app = angular.module('app', ['ngRoute']);
app.config(function($routeProvider, $locationProvider) {
$routeProvider.when('/', {
templateUrl: 'MainView.html',
controller: 'MainCtrl'
}).when('/view', {
templateUrl: 'view2.html',
controller: 'MainCtrl'
});
});
app.controller('MainCtrl', function($scope, $location) {
$scope.name = 'World';
$scope.correctAnswer = [];
$scope.result = function() {
$scope.correctAnswer.push({
"label1": "value1"
}, {
"label2": "value2"
}, {
"label3": "value3"
});
console.log($scope.correctAnswer);
$location.path("/view");
}
});
答案 0 :(得分:5)
哦,很简单,你打电话给$location.path("/view");
而view2.html
有一个ng-init
做同样的result()
功能:
<div class="tab-pane fade" id="profile" ng-init="result()">
这是updated Plunker,有一个可能的(快速)解决方案。
答案 1 :(得分:0)
此外,您可以添加对当前位置的简单检查并呈现不同的代码,请参阅以下代码:
$scope.result = function () {
if($location.path() == ("/")){
$location.path("/view");
}else{
$scope.correctAnswer.push({"label1":"value1"},{"label2": "value2"},{"label3": "value3"});
}
console.log($scope.correctAnswer);
}
由于