Javascript Angularjs ng点击不';t更新视图

Javascript Angularjs ng点击不';t更新视图,javascript,angularjs,angularjs-ng-click,Javascript,Angularjs,Angularjs Ng Click,那是我的控制器 myApp.controller( 'ModalNewInstanceCtrl', [ '$scope', '$modalInstance', function( $scope, $modalInstance ) { $scope.tabSelected = 0; $scope.saveFactor = function () { console.log('here'); $scope.tabSelected = 0; console.log($sco

那是我的控制器

myApp.controller( 'ModalNewInstanceCtrl', [ '$scope', '$modalInstance', function( $scope, $modalInstance ) {

$scope.tabSelected = 0;

$scope.saveFactor = function () {
    console.log('here');
    $scope.tabSelected = 0;
    console.log($scope.tabSelected);
};

表1
表2
表3
这里有一些内容1
这里有一些内容2
这里有一些内容3
保存并返回到选项卡1
取消并返回到选项卡1
这就是我的html。
我不知道为什么
tabSelected
使用
ng click=“tabSelected=0”
直接更改取消链接上的视图,但不在函数
saveFactor()内部更改。我知道由于控制台日志语句,函数被正确调用。和
tabSelected
也已更改,但视图未更改。我无法在该函数中
$scope.$apply()
,因为它会给我一个错误。

修改作用域变量时,将HTML更改为使用函数
HTML:


这可能是一个范围问题。我认为缺少一些代码--您能创建一个JSFIDLE吗?检查的简单方法是使用对象(例如tabs.selected=0、tabs.selected=1等)。这将通过作用域保持。你是对的。我剥离代码只是为了显示相关部分。这把小提琴很好用。必须找出我的版本中的错误。你可以在chrome中检查你的范围变量。我认为你的作用域找不到你的变量。您可以在创建变量tabselected的第一个控制器上使用点表示法或setter函数。所以我必须坚持只使用函数,不能在视图和控制器中直接混合变化的变量。一旦我把所有东西都转换成控制器的功能,它就工作了。谢谢
    <div class="modal-header">
    <div ng-click="tabSelected = 0">Tab 1</div>
    <div ng-click="tabSelected = 1">Tab 2</div>
    <div ng-click="tabSelected = 2">Tab 3</div>

</div>
<div class="modal-body">
    <div ng-show="tabSelected == 0">
        <h3>Some content 1 here</h3>
    </div><div ng-show="tabSelected == 1">
        <h3>Some content 2 here</h3>
    </div>
    <div ng-show="tabSelected == 2">
        <h3>Some content 3 here</h3>
    </div>
</div>
<div class="modal-footer">
        <button ng-click="saveFactor()">Save and return to tab 1</button>
        <a ng-click="tabSelected = 0">Cancel and return to tab 1</a>
    </div>
</div>
<div class="modal-header">
<div ng-click="changeTab(0)">Tab 1</div>
<div ng-click="changeTab(1)">Tab 2</div>
<div ng-click="changeTab(2)">Tab 3</div>
...
<div class="modal-footer">
    <button ng-click="saveFactor()">Save and return to tab 1</button>
    <a ng-click="changeTab(0)">Cancel and return to tab 1</a>
</div>
$scope.tabSelected = 0;

$scope.saveFactor = function () {
    console.log('here');
    $scope.tabSelected = 0;
    console.log($scope.tabSelected);
};
$scope.changeTab= function(tabNum){
    $scope.tabSelected = tabNum;
};