我对Angular还比较陌生,所以不确定“刷新指令”是否用词正确。我正在使用djds4rce的angular-socialshare插件在Angular中构建一个测验,并使用该插件来显示Twitter按钮。
编辑:之前信息不够详细,抱歉。下面是更多代码:
编辑编辑:显然,这要么与angular-socialshare插件有关,要么与Twitter按钮有关。当我对Twitter按钮执行以下操作时:
我在Chrome的开发者工具中看到它正确地显示了用户的分数。但是当我点击链接时,突然所有文本都变回“0”。
HTML
我从一个API中获取了一个列表。该列表的每个元素(我称之为premier)都有一个名称和一个“correct”属性。
编辑:之前信息不够详细,抱歉。下面是更多代码:
编辑编辑:显然,这要么与angular-socialshare插件有关,要么与Twitter按钮有关。当我对Twitter按钮执行以下操作时:
<a twitter data-text="{{score}}"></a>
我在Chrome的开发者工具中看到它正确地显示了用户的分数。但是当我点击链接时,突然所有文本都变回“0”。
HTML
我从一个API中获取了一个列表。该列表的每个元素(我称之为premier)都有一个名称和一个“correct”属性。
<button ng-click="validateClick(premier, $index)"
class="btn btn-default btn-game"
data-correct="@{{premier.correct}}"
ng-class="{'disabled btn-danger': premier.isPremier, 'disabled btn-success': premier.isRandom}"
ng-repeat="premier in premiers"
ng-disabled="gameOver"
ng-bind="premier.name">
我会为用户显示分数:
<span class="score" ng-bind="score"> </span>/70
JAVASCRIPT
在我的Angular控制器中,我有一个名为score的变量。
premierApp.controller('premierController', function ($scope, $http) {
$scope.score = 0;
//so if this correct value = "premier", Game Over! if it = "random", then the user gets a point
$scope.validateClick = function (premier, index) {
if (premier.correct == "premier") {
premier.isPremier = true;
$scope.gameOver = true;
$scope.stopGame();
} else {
premier.isRandom = true;
$scope.score++;
}
}
我是一个有用的助手,可以为您进行文本翻译。
我正在使用指令来显示推特按钮,以便用户可以发布他们的分数:
指令:
premierApp.directive('tweetbutton', function() {
return {
templateUrl: 'html_templates/premiers_tweetbutton.html',
};
});
而模板的URL是这样的:
<a twitter
data-lang="en"
data-size="medium"
data-text="{{score}}">
</a>
目前Twitter按钮的文本(data-text)仍然是“0”(当我在控制器中声明变量时的标准值)。
我该如何更新指令以显示我的应用程序计算出的新分数?