2016-03-26 12 views
1

私は、角度で入力された予定情報を表示するフォームを持っています。既存の予定をフォームに読み込むとすべてうまくいくが、新しい予定を作成しようとするとヌル参照エラーが発生し、フィールドにデータを挿入するための既存のデータは存在しない。新しいデータの作成と既存のデータの読み込みで別々のビューが必要ですか?

たとえば、ここに私のビューのいずれかからの抜粋です:

<fieldset class="form-inline extra-padding-right"> 
    <legend class="sr-only">Event Information</legend> 
    <div class="form-group"> 
     <label>ID:</label> 
     <p class="form-control-static">{{ eventId }}</p> 
    </div> 
    <div class="form-group"> 
     <label>Title:</label> 
     <p class="form-control-static">{{ eventTitle }}</p> 
    </div> 
    <div class="form-group"> 
     <label>Event Status:</label> 
     <select class="form-control" id="ddlEventStatus" ng-model="eventStatus" 
       ng-options="es as es.EventStatusName for es in eventStatusList track by es.EventStatusId"> 
     </select> 
    </div> 
</fieldset> 

eventIdeventTitleeventStatusは、コントローラに$scopeに取り付けられ、これが新しい予定となりますので、すべてのNULLです。

新しい予定を作成して既存の予定を作成するために別個のHTMLビューを作成する必要がありますか、または既存の予定をロードしているときにフィールドにデータを設定しようとするために、

答えて

0

しばしば編集/作成し、単にスコープにフラグ変数を切り替えるために同じコントローラとビューを使用することができますよう

何か:

$scope.editMode = 'create'; 
$scope.startEdit = function(event){ 
    $scope.editMode = 'edit'; 
    $scope.event = event; 
} 
$scope.saveEdit = function(){ 

    $http.post(url,$scope.event).then(function(resp) { 
     $scope.editMode = 'create'; 
     $scope.event = {}; // reset event object 
    }); 
} 

をあなたはいつもいつもng-modelあなたのビューでオブジェクトを使用する必要がありますので、より多くの出力を使用する必要があります:

<span>{{ editMode == 'create' ? "New Event" : "Edit Event"}}</span> 
{{ event.id }} 
<input ng-model="event.id"> 
関連する問題