【发布时间】:2014-08-30 15:54:48
【问题描述】:
我有一个适用于大多数人的登录系统(在 Chrome、Android 设备、IE8、Firefox 等上),但它似乎不适用于使用 Z10s 或 iPhone 5s 的人。我无法访问这些设备,因此很难测试,所以我想问一下我是否正确设置了所有内容。
这是一个 AngularJS 应用,使用 hello.js 进行 OAuth,使用 bootstrap-social 和 font-awesome 作为登录按钮。
要将 hello 插入 Angular,在 app.js 中我包括:
var app = angular
.module('myapp', [
'ui.bootstrap',
'ui.router',
'hello',
])
...
.run([..., 'hello', ..., function(..., hello, ...) {
...
hello.init(...);
...
}]);
...
var helloApp = angular.module('hello', []);
helloApp.factory('hello', function() {
return window.hello; // Assumes hello has been loaded
});
然后,在我的loginCtrl 中,我将其注入
angular.module('myapp').controller('loginCtrl', [..., 'hello', ...,
function(..., hello, $location, ...) {
...
$scope.doLogin = function(network) {
console.log('Calling hello ' + network);
hello.login(network);
};
...
}]);
在我看来,我有
<button id="facebookLogin" class="btn btn-social btn-facebook" ng-click="doLogin('facebook')">
<span class="fa fa-facebook pull-left"></span> <span>Sign in with Facebook</span>
</button>
<button id="googleLogin" class="btn btn-social btn-google-plus" ng-click="doLogin('google')">
<span class="fa fa-google-plus pull-left"></span> <span>Sign in with Google</span>
</button>
昨天我使用onclick="hello.login('facebook')",我怀疑它在某些设备上被破坏了,因为我不应该使用onclick,而hello不在范围内,所以我把它改成了ngClick并在范围内调用函数。 onclick 对有错误的用户的具体影响是将用户重定向到 default/catch-all 路由而不访问服务器(我监听 hello 事件并调用服务器,所以这表明它不是打个招呼。)
但是,我仍然要求有问题的人重试(显然在刷新之后),现在他们说按钮根本没有任何作用。
网站上的其他按钮也可以使用。事实上,为了访问这个页面,他们使用<button> 使用ui-router 来访问这个页面。
我将继续搜索,但我只是想问一下我是否正确地将 hello.js 挂接到 AngularJS 中,并且没有犯任何其他初学者错误。
【问题讨论】:
-
我已将其更改为使用“页面”而不是“弹出窗口”,现在的问题是它无法正确返回。 Hello.js 使用哈希来标记 url 片段,而我的应用程序使用 hashbang
-
你解决了吗,即使在普通浏览器上也有退货问题
-
不,不幸的是,我仍在使用我的 hack(我在 iPhone 上使用
display:'page')我一直很忙,但仍打算从下面的 cmets 中尝试 @Drew 的建议。 -
你能用弹出窗口解决这个问题吗?
-
我想我曾经……或者曾经……我已经有一年半没有从事这个项目了:S 如果我没记错的话,真正解决它的是等到春天2015 并为 hello.js 引入了新的更新。 :)
标签: iphone angularjs blackberry hello.js