2016-09-01 7 views
1

편집 할 수 없도록 한 텍스트 필드를 양식에로드하려는 곳에 응용 프로그램을 개발 중입니다. 나는 두 가지 대답을 원한다. 사실 내 생각은 URL에서 _id을 하나 가져와 내 컨트롤러에 전달하고 db에서 해당 이메일 ID를 가져 와서로드 양식에 채워 사용자가 필드에서 편집 할 수 없도록하는 것입니다.anglejs에서로드시 텍스트 필드를 채우는 방법

질문 1 : ID를 사용하여 이메일 ID를 가져 오는 API를 작성했지만 내 URL에서 _id을 가져 오는 방법을 모르겠습니다.

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

URL의 형식 www.xyzabc.com/register.html?id:57c5dda12e63d15d2e4dea2c을 말한다.

내 API는 다음과 같이 간다 : ID가 하드 코딩 된 경우

$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에서 url 매개 변수를 가져 오는 방법을 모릅니다.

질문 2 : 내 ID를 $scope.user.email = email;에 입력하면 사용자가 편집 할 수없는 입력란에 입력됩니다.

아래 코드를 시도했지만 제대로 작동하지 않았습니다.

<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에 그것을 전달할 수있는 경우.

관련 문제