提问人:Divya MV 提问时间:10/29/2015 最后编辑:Divya MV 更新时间:11/3/2015 访问量:43764
angularjs 中的动态标题 - 使用 ng-attr-title
Dynamic Title in angularjs - using ng-attr-title
问:
我怎样才能在angularJS中获取动态标题,我知道使用如下所示ng-attr-title
<div ng-app="myApp" ng-controller="ctrl">
<div ng-attr-title="{{title}}">Hover me</div>
</div>
控制器是
var app = angular.module('myApp', []);
function ctrl($scope){
$scope.title = "I 'm a tooltip!";
}
这是 JSfiddle 及其工作原理。我正在尝试的是有两个不同的标题,一个在启用时,另一个在禁用时,所以我想决定在运行时进入的变量,如下所示。ng-attr-title
<div ng-app="myApp" ng-controller="ctrl">
<div ng-attr-title="{{message}}">Hover me</div>
</div>
控制器是
var app = angular.module('myApp', []);
function ctrl($scope){
$scope.Enabledtitle = "U can click me";
$scope.Disabledtitle = "U cannot click me";
$scope.message="Enabledtitle";
}
因此,当我将鼠标悬停时,我应该会得到工具提示,说“您可以单击我”。因此,我只需更新范围变量即可灵活地在工具提示消息之间切换message
这是 JSfiddle,我在其中尝试了动态标题,并得到了“Enabledtitle”作为工具提示,而不是“您可以单击我”。
我怎样才能告诉 angular 解析和识别它的价值。{{Enabledtitle}}
答:
8赞
JB Nizet
10/29/2015
#1
在控制器中:
$scope.getMessage() {
return isEnabled ? "You can click me" : "You can't click me";
}
在视图中:
<div title="{{ getMessage() }}">...</div>
或者,每次代码更改标志的值时,也要更改消息。isEnabled
评论
0赞
user1438038
7/9/2018
例如,如果 在元素中定义,我们是否也可以将变量传递给 ?getMessage()
div
ng-repeat
0赞
JB Nizet
7/9/2018
@user1438038是的,你可以。
2赞
Disha
10/29/2015
#2
做
$scope.message=$scope.Enabledtitle;
而不是
$scope.message="Enabledtitle";
14赞
dfsq
10/29/2015
#3
您将需要使用括号表示法来访问具有变量名称的属性。因此,title 属性变为:ng-attr-title="{{this[message]}}
var app = angular.module('myApp', []);
function ctrl($scope) {
$scope.Enabledtitle = "U can click me";
$scope.Disabledtitle = "U cannot click me";
$scope.message = "Enabledtitle";
}
<script src="http://code.angularjs.org/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="ctrl">
<div ng-attr-title="{{this[message]}}">Hover me</div>
</div>
在您的例子中,指向当前范围对象,并且您正在通过动态键读取它的属性。this
$scope
message
评论