我无法解决这个问题。
这是我的主要页面控制器:
'use strict';
angular.module('myContacts', [
'ngRoute',
'firebase',
'contacts.mycontacts'
])
.config(['$locationProvider', '$routeProvider', function($locationProvider, $routeProvider) {
$locationProvider.hashPrefix('!');
$routeProvider.otherwise({redirectTo: '/contacts'});
}]);
这是我的第二个或联系人控制器:
angular.module('contacts.mycontacts', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/contacts', {
templateUrl: 'contacts/contacts.html',
controller: 'contactsCtrl'
});
}])
.controller('contactsCtrl', ['$scope',function($scope) {
$scope.showAddForm = function(){
console.log($scope.addFormShow); // gives me undefined every time
$scope.addFormShow = true;
console.log($scope.addFormShow); // gives me true
}
console.log($scope.addFormShow); //gives me undefined
}]);
这是我的联系人HTML:
<div class="row" ng-controller='contactsCtrl'>
<div ng-show="addFormShow"> the Add Button get a click from user </div>
<div class="small-12 large-2 columns">
<a class="button large" href="#" ng-click="showAddForm()">+ </a>
</div>
</div>
正如你在modulel-&gt; contacts.mycontacts-&gt;控制器中看到的那样,这是问题函数
$scope.showAddForm = function(){ console.log($scope.addFormShow); // gives me undefined every time
$scope.addFormShow = true;
console.log($scope.addFormShow); // gives me true
}
console.log($scope.addFormShow); //gives me undefined
来自ng-view下联系人的HTML发生问题//上面的函数没有在HTML下面更新addFormShow
<div class="row" ng-controller='contactsCtrl'>
<div ng-show="addFormShow"> the Add Button get a click from user </div>
<div class="small-12 large-2 columns">
<a class="button large" href="#" ng-click="showAddForm()">+ </a>
</div>
</div>
答案 0 :(得分:0)
这是预期的行为。 您编写函数和console.log的顺序无关紧要。
正在发生的是您正在记录当时未定义的变量。然后可能调用该函数并再次获取未定义,分配它,并获得真实。
我强烈建议您按照John's papa guidelines编写代码。
要“修复”您遇到的任何问题,请在控制器顶部定义变量
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NetFramework,Version=v4.6.2"/></startup>
</configuration>
答案 1 :(得分:0)
刚刚解决了由于href =&#34;#&#34;
引起的问题 <a class="button large" href="#"ng-click="showAddForm()">+ </a>
将其更改为
<a class="button large" href="javascript:void(0)" ng-click="showAddForm()">+</a>