特に angular/js 用語 (コントローラー、サービス、ファクトリーなど) に関しては、私の言葉遣いの一部がずれている可能性がありますが、それでも理解できることを願っています。また、この質問には複数の部分があるため、1 行で質問するのが困難でした。
newRegistration.html、Registration.js、およびaddressVerification.jsの3 つのファイルがあります。
newRegistration.htmlには、ユーザーが自分のメールアドレス、電話番号、郵送先住所などを入力して「次へ」をクリックするフォームがあります。[次へ] をクリックすると、Registration.js (コントローラー?) がトリガーされます (?)。
newRegistration.html
次のスニペットは、addressVerification.jsng-repeat
からの新しいデータで更新したいものです。
<div id="dialog-form" title="CHOOSE THE CORRECT ADDRESS">
<ul>
<li ng-repeat="for item in [not sure what to put here because of two js files]">
</li>
</ul>
</div>
登録.js
上記を含むテンプレートのコントローラーng-repeat
。
一番上の行は次のようになります。
angular.module('appname')
.controller('RegistrationCtrl', function ($scope, $http, cacheStore, countryStates, birthYear, $anchorScroll, errorMessages, addressVerification, UtilsFactory)
そして、これは関連するかもしれない行です:
addressVerification.verify(user).then(function (userObj)
addressVerification.js
Smartystreets API を使用して、郵送先住所を修正/提案します。
newRegistration.htmlng-repeat
にデータを入力するために、このモジュールから Registration.js (スコープ変数 [?] がある場所) に変数を渡す方法がわかりません。
angular.module('appname').factory('addressVerification', function($q, userIdentity, $http, smartyToken) {
"use strict";
return {
verify: function(obj) {
var deferred = $q.defer(),
street2QS = "";
if (obj.address2 || obj.address2 !== "") {
street2QS = "&street2=" + encodeURIComponent(obj.address2);
}
$http.jsonp("https://api.smartystreets.com/street-address?street=" + encodeURIComponent(obj.address1)
+ street2QS
+ "&city=" + encodeURIComponent(obj.city)
+ "&state=" + encodeURIComponent(obj.state)
+ "&zipcode=" + encodeURIComponent(obj.zip)
+ "&source=website&auth-token="+ smartyToken.get() + "&candidates=5&callback=JSON_CALLBACK")
.success(function (response) {
var metaData,
components;
if (response && response.length === 1) {
metaData = response[0].metadata || {};
components = response[0].components || {};
angular.extend(obj, {
"address1": [
components.primary_number,
components.street_name,
components.street_suffix
].join(" "),
"address2": [
components.secondary_designator,
components.secondary_number
].join(" "),
"city": components.city_name,
"county_name": metaData.county_name,
"county_fips": metaData.county_fips,
"state": components.state_abbreviation,
"latitude": metaData.latitude,
"longitude": metaData.longitude,
"plus4_code": components.plus4_code,
"zip": components.zipcode
});
deferred.resolve(obj);
} else {
deferred.reject(false);
}
}).error( function() {
deferred.reject(false);
});
return deferred.promise;
}
};
});
私は今かなり無知です。必要な詳細をすべて提供したと思います。どこから始めればいいのか知りたいです。遅延オブジェクト、ng-repeat、およびコントローラーについてすべて読みましたが、混乱しています。
どんな助けでも感謝します。