2013-10-22 69 views
0

我有一個情況,我已經實現了noJS Fallback但我想要替換整個div內容。 HTML如下:AngularJS Empty/Fill A Div

<div ng-controller="UserStatusCtrl"> 
    {{content}} 
    <button>Login</button> 
    <button>Register</button> 
</div> 

而且我有一個控制器,它的工作原理是這樣的:

EngagementApp.controller('UserStatusCtrl', ['$scope', 'user', 
function($scope, user) { 

    if(user.status == 0) { 
     $scope.content = ' <button>Login</button><button>Register</button>'; 
    } else if(user.status == 1) { 
     $scope.content = '<div>Welcome' + user.user_name + '</div>'; 
    } 

    return function($scope) { 

    }; 
}]); 

我的問題是如何能夠取代在div的所有內容,而不僅僅是內部的{{內容}}區域?

+1

控制器不應該知道/產生任何標記。至於你在問什麼,你可以使用'ng-include'或'ng-show'指令。 – akonsu

+1

不要在控制器中取消任何類型的DOM修改,這是angularjs聲明的原因,而是使用指令或通過作用域傳遞信息 –

回答

3

您的視圖應該是顯示/隱藏內容的視圖。

EngagementApp.controller('UserStatusCtrl', ['$scope', 'user', 
function($scope, user) { 

    $scope.status = user.status; 
    $scope.userName = user.user_name; 
... 

在你看來:

<div ng-hide="status == 0"> 
    Welcome {{userName}} 
</div> 

<div ng-show="status == 0"> 
    <button>Login</button> 
    <button>Register</button> 
</div>