私はangular.js(v 1.6.3)を使用して私の最初のアプリケーションを開発していますが、私は非常に基本的な問題を抱えています。私は "User Group"のリストページを作成しました。このリストにはEditボタンがあります。この編集ボタンのクリックイベントでは、レコードIDを編集ページにリダイレクトします。 以下は私のボタンのコードは次のとおりです。以下は
<button data-ng-click="editUserGroup(userGroup.id)">✎Edit</button>
は要するに
editUserGroup
$scope.editUserGroup = function(userGroupId) {
//$location.path("/userGroup.html").search({c:'edit', id:userGroupId});
//$scope.$apply();
$window.location.href = './userGroup.html#/?c=edit&id='+userGroupId;
}
ためのコードですが、私はページを編集するためにリダイレクトしたいとも2つのパラメータを、渡す必要があり ?c=edit&id=<actual id here>
上記のコードでわかるように、$location.path()
は新しいページをリロードしていないので、URLは<Some URL>/listUserGroup.html#!/userGroup.html?c=edit&id=1
のようにしか変更されていないため、機能しません。私は$window.location.href
を使用している場合は、私は新しいページにリダイレクトすることができますが、は、HTMLが<Some URL>/userGroup.html#!#%2F%3Fc=edit&id=1
以下
のようにエンコードなっているどのように私は新しいページにリダイレクトし、angular.jsを使用してパラメータの両方を渡す必要がありますか?
ルータを使用していますか?そうでない場合は、1)を使用してください。つまり、ui-routerを使用すると、単に
@PetrAveryanov私はルータを使用していません。私はそれを明日試して、あなたを更新します。ところで、私のアプリはSPAではない、私はまだルーティングが必要ですか?ありがとうございました。 – Aakash
私はあなたがSPAとは何か、それがいつどのように使われるべきなのか誤解していると思います。すべての時間(ユーザーの視点ではなくサーバーの視点から)完全に新しいページをロードする場合は、角度を選択する必要はありません。 #の後のすべてはサーバーによって無視されます。ネットワークタブで、ブラウザーによってまったく送信されていないことを確認できます。 –