Angular对我来说是新的。我尝试建立一个包含动态href
属性的链接。
到目前为止,我读到使用ng-href
代替代替href
是一种很好的做法。但是,当我尝试这个:
<a target="_blank" data-ng-href="{{myUrl}}">Follow this URL</a>
(我也试过不使用大括号)
href值不采用我在控制器中输入的值:
function (data) {
console.log("data : %o", data);
console.log("url : "+data.url);
$scope.myUrl = data.url;
}
难道我做错了什么?
这是数据值,如控制台所示:
data : Object
requestTokenId: 3405
url: "https://api.twitter.com/oauth/authorize?oauth_token=TBqMIpdz[...]"
__proto__: Object
更多背景:
我想创建一个“ Twitter授权”模式:
<div data-ng-controller="myController">
<!--
Some HTML elements on which data-binding works.
-->
<div class="modal fade" id="authorizationTwitterModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span
class="sr-only">Close</span></button>
<h4 class="modal-title">Authorization</h4>
</div>
<div class="modal-body">
<ol>
<li>Connect to your account</li>
<li id="liAuthorizationTwitterURL"><a target="_blank" ng-href="{{myUrl}}">Follow this URL</a></li>
<li>Authorize Ambasdr</li>
<li>Copy/Paste the authorization code here :</li>
</ol>
<p class="text-center">
<input id="verifier" name="value" type="text">
</p>
</div>
</div>
</div>
</div>
然后,当用户想要授权Twitter时,我调用我的服务器,该服务器调用Twitter,然后为我提供要放入href中的URL:
$scope.addTwitterAccount = function(brandId) {
console.log("addTwitterAccount");
var popup = wait("Authorization");
//$scope.myUrl = 'http://www.google.fr'; <- This change works!
$.doPost("/api/request_token/",
{
socialMedia: 'TWITTER'
},
function (data) {
console.log("data : %o", data);
console.log("url : "+data.url);
$scope.myUrl = data.url; // <- This change does not work!
}
);
};
看起来您是在Angular之外调用api?在这种情况下,您需要“告诉” Angular发生了更改,以便Angular可以更新视图。为此,您可以致电scope.$apply()
:
function (data) {
$scope.$apply(function(){
$scope.twitterUrl = data.url;
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句