私は小さな問題に直面しています。私は自分の機能をほとんど使い果たしました。
複数のプロジェクトを送信するためのオプションをユーザーに提供するフォームがあります。これは、「さらに追加」機能をクリックした後のドロップダウンリストの動的生成によって容易になります。これで、ユーザーが生成したドロップダウンリストをいくつでも作成できるようになりました。配列内の値をキャッチし、それをサーバーに送信してデータベースに保存しています。
HTMLコードは次のとおりです。
<form name="form" class="form-horizontal" ng-submit="save()" style="margin-left:220px;">
<table cellpadding="10">
<tr>
<td></td>
<!--data-ng-repeat='item in array'-->
<td style="width: 270px;">
<div>
<div ng-controller="AlertDemoCtrl">
<alert ng-repeat="alert in alerts" type="alert.type" close="closeAlert($index)" ng-model="ProjectId[item]">
<ul style="list-style-type: none; margin-left: 0px;">
<li >
<!--data-ng-model="selectedProject[$index]"-->
<!--data-ng-model="test.ProjectId"-->
<!--<select data-ng-model="test.ProjectId"
data-ng-options="test.ProjectId as test.ProjectName for test in items" id="Project">-->
<select>
<option value="">-- Choose a Project --</option>
<option ng-repeat="item in items" value="{{item.ProjectId}}">{{item.ProjectName}}</option>
</select>
<button type="button" ng-click="closeAlert($index)"><img src="delete.png" alt="Remove" style="height:20px; width:20px;" /></button>
</li>
</ul>
</alert>
<button class='btn' type='button' ng-click="addAlert()">Add Projects</button>
</div>
</div>
</td>
<td>
<label id="Label2" style="color: red"></label>
</td>
</tr>
</table>
<div style="margin-left: 200px;">
<input type="submit" class="btn btn-primary" name="Submit" value="Submit" onclick="return validateForm()" />
<a href="#/emp" class="btn">Cancel</a>
</div>
</form>
ALERT は、「さらに追加」をクリックして動的なドロップダウンリストを生成できるようにするカスタム ディレクティブです。
app.js のコントローラーのコード
var CreateCtrlEmp = function ($scope, $location, SampleEmp, SampleProj, SampleDes, sharedValues) {
$scope.items = SampleProj.query({ q: $scope.query });
$scope.itemsd = SampleDes.query({ q: $scope.query });
$scope.save = function () {
//issue over here
$scope.item.ProjectId = [];
SampleEmp.save($scope.item);
$location.path('/emp');
};};
現在、サーバー側のコードで選択した値を取得していません。考えられる問題は次のとおりです。
- コードは値をサーバー側コードに送信できません。つまり、空の配列を渡しています。
- $scope.item.ProjectId = []; の初期化 投稿された値を上書きしているため、空の配列を取得しています。
注: 次のようなコントローラーで静的な値を渡す場合:
$scope.item.ProjectId = [5,7];
機能は正常に動作しています。
ガイドしてください。
ありがとうございます!
トゥシャル・シャルマ