當我點擊我的預覽模式「預覽」,這裏保存按鈕沒有被禁用http://plnkr.co/edit/I3n29LHP2Yotiw8vkW0i將AngularJS ng形式的對象傳遞給ng-if?
我想這是因爲表單對象(testAddForm)是不是在NG-IF的範圍內都有效。我知道我應該在控制器中使用一個對象,因爲它一直向下傳遞,但表單對象是通過角度創建的,並且在ng-if中不可用。我該如何解決這個問題?
<!DOCTYPE html>
<html ng-app="app">
<head>
<script data-require="[email protected]" data-semver="1.2.27" src="https://code.angularjs.org/1.2.27/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-controller="TestController">
<form name="testAddForm" novalidate>
<div ng-if="!previewMode">
<input name="title" ng-model="data.title" required />
<p ng-show="testAddForm.title.$invalid && !testAddForm.title.$pristine" class="help-block">Title is required.</p>
<div>
<input type="button" value="Preview" ng-click="preview(true)" />
<input type="button" value="Save" ng-disabled="testAddForm.$invalid"/>
</div>
</div>
<div ng-if="previewMode">
<h2>{{data.title}}</h2>
<div>
<input type="button" value="Cancel" ng-click="preview(false)" />
<input type="button" value="Save" ng-disabled="testAddForm.$invalid"/>
</div>
</div>
</form>
</body>
</html>
JS:
angular.module('app', []);
angular.module('app').controller('TestController', ['$scope', function($scope) {
$scope.data = {};
$scope.previewMode = false;
$scope.preview = function(show) {
$scope.previewMode = show;
};
}]);
很抱歉,但我可能只是一個標誌作爲正確的,你的是權這兩個答案對我來說都是同時顯示的,所以我選擇了一個聲譽較低的傢伙。也謝謝你! – burzum