私は、angularJSを使用している.net MVCアプリケーションのビューページに複数のドロップダウンリストを設定する正しいアプローチを決定しようとしています。複数のドロップダウンリストを設定する場所
私のアプリでは、サイロSLAアプリケーションとして設計されています。私は角度ngRouteモジュールと$ routeProviderを使用して、単一のCSHTMLページの複数のHTMLページを記述しています。
.config(function ($routeProvider, $locationProvider) {
$routeProvider.when('/club', { templateUrl: '/App/Club/Views/MCLView.html', controller: 'mclViewModel' });
$routeProvider.when('/club/list', { templateUrl: '/App/Club/Views/MCLView.html', controller: 'mclViewModel' });
$routeProvider.when('/club/show/:clubId', { templateUrl: '/App/Club/Views/ClubView.html', controller: 'clubViewModel' });
$routeProvider.otherwise({ redirectTo: '/club' });
$locationProvider.html5Mode(true);
});
私のCSHTMLページは、<div ng-view></div>
タグを除いて基本的に空です。ルーティングされたHTMLページは、ng-view divにロードされます。
<div data-ng-app="club" id="club" data-ng-controller="rootViewModel">
<h2>{{ pageHeading }}</h2>
<div ng-view></div>
</div
ng-viewに読み込まれた各HTMLページには、関連するviewmodel javascript controllerがあります。
サーバーコールからリストデータ(json)を取得するために、角度コントローラで$ http.getを使用してhtmlページの最初のドロップダウンを作成し始めました。次に、result.dataでJSON.parseを実行し、htmlページで定義されている選択リストコントロールに値を設定します。
$scope.refreshColorsDropdown = function() {
var sel = document.getElementById('colorDropdown');
var colors = JSON.parse($scope.mycolors);
angular.forEach(colors, function(color) {
var opt = document.createElement('option');
opt.innerHTML = color.name;
opt.value = color.hex;
sel.appendChild(opt);
});
}
私はいくつかのサーバーを作成し、自分のページ上の各ドロップダウンのために、このアプローチを続けることができたが、すべて私のドロップダウンを移入するために呼び出す...しかし、これは退屈でコード重いようです。
妥当なアプローチは、複数のコレクションを返す1つのサーバー呼び出しを作成すること(それぞれのドロップダウンごとに1つずつ)を検討し、それらを解析してすべてのドロップダウンを設定することですか?
サーバサイドのC#コードにリストをあらかじめ入力したいのですが、ng-view divを除いて私のcshtmlファイルは空ですので、コーディングはありません。
私のHTMLビューにすべてのHTMLコンテンツが含まれていて、cshtmlが空の場合...サーバー側から複数のhtmlリストコントロールを挿入するにはどのような戦略を使用する必要がありますか?
なぜJS DOM操作を使用して角度リストを作成しますか?どうしてng-repeatを使ってそれを角度のない方法で行うのですか? – Kindzoku
@Kindzoku ...それは有効な質問です。私のjsonレスポンスで動作するng-repeatを得ることができなかったので、答えは私が知っているものにデフォルトしました。そして、私はまだ角を学んでいます。それを私のtodo上で、ng-repeatに変換します。 – Riccarr
あなたのToDoで急いで;)ここに非同期データの例があります。ドロップダウンを角度で作成する2つの方法。 https://plnkr.co/edit/32Sl09mOtANf27z4azW8 – Kindzoku