1

angular uiルーターでAngularJsを使用しています。私のホームページでは、HTML タグで 'ng-app' を宣言しています。

ホームページはこんな感じ

<html  ng-app="grwebapp.sidebarlogin">
<head>
.
.
.
<script id="digits-sdk" src="https://cdn.digits.com/1/sdk.js" async></script>

    <script>
    var userphone
//I assume digits-sdk is something loaded in the above script file. 
    document.getElementById('digits-sdk').onload = function() {

  Digits.init({ consumerKey: 'some-key' });
  Digits.embed({
//the container just tells where to place the digits box. 
//In this case I have provided it an 'id' of a div element.
  container: '#my-digits-container',
  });
}
</script>
</head>
<body>
....
 <div ui-view ng-controller="sidebarloginCtrl"></div>
</body>
</html>

grwebapp.sidebarlogin.js には、次のような関連する状態があります。

.state('/', {
        url:'/',
        templateUrl: '/angularapp/sidebarlogin.html',

        controller: 'sidebarloginCtrl',
});

最後に、 ui-view divに配置される sidebarlogin.html があります。

some code....
<div id="my-digits-container" ></div>
some code.....

上記の div はモーダルでラップされています。

私の問題は、「数字ボックス」が Google Chrome にロードされていることです。しかし、mozilla firefox では、ロードされる場合とロードされない場合があります。また、「ng-app」を「body」タグに移動すると、「数字ボックス」がFirefoxに読み込まれることがわかりましたが、常にFirefoxに読み込まれるかどうかは疑問です。ここでアプリフローが欠落していると思います。

また、Google Chrome の場合、モーダルの高さは「数字ボックス」のサイズに応じて変化しますが、mozilla firefox および Internet Explorer の場合、「数字ボックス」は垂直スクロールバーとともに表示されます。

2016 年 6 月 25 日更新:

ディレクティブを使用してみました新しい更新では、ホームページに digit-sdk を保持しています

ホームページ

<script id="digits-sdk" src="https://cdn.digits.com/1/sdk.js" async>

私の数字のスクリプトはディレクティブになりました:

app.directive("digitDir", function() {
    var userphone

    document.getElementById('digits-sdk').onload = function() {

  Digits.init({ consumerKey: 'some-key' });
Digits.embed({
  container: '#my-digits-container',
  theme: {
   /* Input fields borders */
  },
  phoneNumber: '+91',

})
};
return {

    };
});

テンプレート sidebarlogin.html には、次のようなディレクティブ タグが含まれるようになりました。

<div id="my-digits-container" ></div>
<div digit-dir></div>

また、「digit-dir」divを「my-digit-container」divの上と中に配置しようとしました。しかし、Firefoxではまだ機能しません。

今回デバッグしたものから、次のコードは起動していません。

document.getElementById('digits-sdk').onload = function(){.....

どんな助けでも大歓迎です。

4

1 に答える 1