我想做类似的事情:
<div class='row' ng-repeat='row in _.range(0,12)'>
<div id='{{row}}'></div>
</div>
但是在控制器中时,我尝试:
function SetterForCatanCtrl($scope) {
$scope._ = _;
try {
var tile = document.getElementById('5');
tile.style.backgroundImage = "url('aoeu.png')";
} catch (e) {
alert(e)
}
}
getElementById
返回null,那么如何使用AngularJS变量设置元素的ID?
SetterForCatanCtrl
当angular
ngController
在引导您的应用程序时遇到指令时,该函数仅运行一次。发生这种情况时,您要从DOM访问的元素还不存在。
从控制器 执行 DOM操作不是一个好习惯
,伪指令可以解决您面临的问题。您的用例可以通过CSS来解决,只需切换类即可,但是我想您想做的不仅仅是设置背景图片。
您不需要的是自定义指令,因此可以使用ngClick指令并调用可以切换图片的方法来完成快速解决方案
HTML范例
<div ng-controller='ctrl'>
<div class='row' ng-repeat='row in _.range(0,12)'>
<div id='{{row}}' ng-click="click($index)">
<button>{{row}}</button>
</div>
</div>
</div>
和JS
var App = angular.module('app', []);
App.run(function($rootScope) {
$rootScope._ = _;
});
App.controller('ctrl', function($scope){
$scope.click = function(idx){
var elem = document.getElementById(idx);
console.log('clicked row', idx, elem);
};
});
因此,当单击按钮时,您将获得一个id并使用它从DOM中获取元素。但让我重复一遍,对于这种用例,指令是一个更好的选择。
JSFiddle:http :
//jsfiddle.net/jaimem/3Cm2Y/
pd:如果您加载jQuery,则可以用来angular.element(<selector>)
从DOM中选择元素。
编辑:添加指令示例
使用指令更简单,因为您可以将事件绑定到该指令所应用于的元素
的HTML
<h1>Directive</h1>
<div class='row' ng-repeat='row in _.range(0,12)'>
<div id='{{row}}' my-directive>
<button>{{row}}</button>
</div>
</div>
JS
App.directive('myDirective', function(){
return function(scope, element, attr){
element.bind('click', function(){
console.log('clicked element: ', element, element.html());
});
};
});
http://jsfiddle.net/jaimem/3Cm2Y/1/
我想为一个笔记应用程序添加笔记加号。我做了一个固定位置的圆,这样它总是可见的。然后,我想做两条线,形成一个加号,并将这些线居中。这是代码: null null 请告诉我如何将加号居中到固定位置的圆上。谢谢!
在我的应用程序中,我有一组数据要绑定到微调器。 但我希望其中一个特定值被视为微调器列表中的第一个。 结果是,但我希望它是 我如何设置它?
我试图将值绑定到下拉列表,我的数据是一个对象数组,但找不到一种方法将所选内容的id绑定到下拉列表值。 这是我的密码和小提琴 html http://jsfiddle.net/7RUzu/1/ 我希望id是值。 谢啦
问题内容: 我有一本字典存放在 现在,我不想包含重复的,我应该使用什么? 问题答案: 只需创建一个可以通过键获取唯一值的过滤器即可。这样的事情应该做(我根本没有测试过,所以我把这件事留给你,这只是给你一个主意): 注意:Array.indexOf()在IE8中不起作用 ,因此,如果支持IE8,则需要在indexOf()中存根,或者需要使用稍微不同的方法。 其他想法:如果已经在引用那些库,那么最好创
如何在Elm中设置Html元素的焦点?我试图在元素上设置自动聚焦属性,它只在页面加载上设置焦点。
我写了一些代码来呈现ReactJS中的重复元素,但我讨厌它有多丑。 有没有更好的方法来实现这一点? (我想在模板代码或类似的方法中嵌入循环。)