2016-09-01 6 views
1

編集用に無効になっているフォームに1つのテキストフィールドをロードするアプリケーションを開発しています。私は2つのことに答えてほしい。実際に私の考えは、URLから1つのmongodb _idを取得し、それを私のコントローラに渡し、対応するEmail IDをdbから取得し、ユーザーがフィールドで編集できないように読み込みフォームに入力します。anglejsのロード時にテキストフィールドに値を設定する方法

質問1:IDを使用して電子メールIDを取得するためのapiを作成しましたが、私のURLから_idを取得する方法がわかりません。

www.xyzabc.com/register.html?id:57c5dda12e63d15d2e4dea2c www.xyzabc.com/register.html?57c5dda12e63d15d2e4dea2c

URLのいずれかの形式を言います。

私のAPIは、このように書きます:

$scope.fetchEmail = function (id) { 

    $scope.id = "57c5dda12e63d15d2e4dea2c"; 
    console.log("logging routeparam"); 
    console.log($scope.id); 
    UserServices.fetchEmail($scope.id, function (email) { 

     console.log("insied fetch fn"); 
     console.log(email); 
     $scope.user.email = email; 

    }); 
} 

IDがハードコードされている場合は、上記のコードは完璧にすべてを行います。私はidからurlパラメータを取得する方法を知らない。

質問2:$scope.user.email = email;でIDを取得すると、ユーザーが編集することが禁止されているフィールドにIDが設定されます。

私は以下のコードを試しましたが、それは私のためには機能しませんでした。

<input name="email" id="email" class="form-control" placeholder="Email" ng-model={{"user.email"}} disabled="disabled" required> 

誰でもこの懸念で私を助けることができます。お早めに。

答えて

1

あなたの角度のURLで変数を渡すには、URLルーティングを使用する必要があります。私はあなたが、それぞれのIDの一意のURLを望むと思う?

$stateProvider 
    .state('contacts.detail', { 
     url: "/contacts/:contactId", 
     templateUrl: 'contacts.detail.html', 
     controller: function ($stateParams) { 
      // If we got here from a url of /contacts/42 
      expect($stateParams).toBe({contactId: "42"}); 
     } 
    }) 

出典:https://github.com/angular-ui/ui-router/wiki/url-routing#url-parameters

あなたのHTMLのためのシンプルな形式は以下になります。

<input name="email" id="email" class="form-control" placeholder="Email" ng-model="user.email" ng-disabled="true" required> 
1

あなたのURLは?id=57c5dda12e63d15d2e4dea2cのようなパラメータを、あなたは{'id':'57c5dda12e63d15d2e4dea2c'}のようなオブジェクトを返します$location.search(url)を使用することができ、その後、あなたがメールを取得するためのAPIにそれを渡すことができますを持っている場合。

関連する問題