selectivityを使って要素を選択しようとしましたが、これはangularjsコントローラを使ってオプションをレンダリングします。問題は、角度がテンプレートにオプションを渡す前に選択性が適用されることです。プロトコルでは、選択性スタイリングは静的オプションでうまく動作しますが、データバインディングではなく、静的オプションはまったく解決策ではありません。angularjsに選択度が適用されました
HTML
<select id="roleIds" name="roleIds[]" ng-options="role.name for role in roles track by role.id" ng-model="selected_roles" multiple></select>
angularjs
$http
({
method: "GET",
url: url,
isArray: true
}).then
(
function(response)
{
$scope.name = response.data.name;
$scope.email = response.data.email;
$scope.roles = response.data.roles;
$scope.selected_roles = response.data.selected_roles;
$scope.selected_accesses = response.data.selected_accesses;
$scope.accesses = response.data.accesses;
jQuery('#roleIds').selectivity({
multiple: true,
tokenSeparators: [' ']
});
}
);
どのように私はこれを達成することができますか? angularjsを使ってデータを扱いながら素敵なマルチセレクションが可能ですか?
さて、選択性が適用されましたが、すべてのangularjsディレクティブが消去され、selectのオプションはデータバインドされません。これは静的selectのようです。 – Nikolay
私が提供したコードは単なる例です。投稿のコードに表示されているように、コードを保持し、APIからロールやその他の詳細を取得する必要があります。 – 10100111001
はい、それはまさに私がやったことでした。選択項目には適切なオプションが選択されていますが、コントローラーとは**データバインドされていません**。私がselect要素を調べると、 'ng-model = "selected_roles"'のようなangularjs指示文は選択性によって一掃されます。たとえば、オプションの1つを選択解除すると、コントローラの$ scope.selected_rolesの値に変更が適用されないため、フォームを送信してもデータベースに何も変更はありません。これらのディレクティブをディレクティブの** link **関数などの属性として追加する必要がありますか? – Nikolay