如何更改 Famo.us + Angular 中元素的 classList?
How can you alter the classList of an element in Famo.us + Angular?
I'm using Famo.us + Angular. 我可以通过这样做来检索 classSurface 列表:
$scope.findElement = function() {
var elem = $famous.find("#colored-bg")[0].renderNode; // Returns Surface
console.log(elem.classList); // RETURNS: ["purple-bg", "container-border", "box-shadow"]
};
您不能对 Famo.us 对象执行您通常可以对 DOM 上的任何其他对象执行的任何操作。例如,我认为我可以添加、删除或替换 classes,类似于:
document.getElementById('id').classList.add('class');
document.getElementById('id').classList.remove('class');
不过,添加和删除不存在。我可以 return class 列表,甚至列表中的单个项目(例如:仅第一个 class),但您不能更改它。有什么建议吗?
Tony Alves 在 Famo.us Slack Chat 中找到答案:
renderNode.setClasses(['white-bg']);
此信息是在 github docs 中找到的。所以整个函数看起来像这样:
$scope.findElement = function() {
var elem = $famous.find("#colored-bg")[0].renderNode;
console.log(elem);
elem.setClasses(['white-bg']);
console.log(elem.classList); // RETURNS: ["white-bg"]
};
setClasses 将接受一个字符串数组,并将其放入 Fa-Surface。
setClasses
方法接受一个数组,您可以使用以下方法设置 classes:
renderNode.setClasses(['white-bg', 'big-text']);
通过传递 class 名称使用 addClass
添加 class 使用:
renderNode.addClass('big-text');
通过传递 class 名称使用 removeClass
删除 class 使用:
renderNode.removeClass('big-text');
根据 class 名称是否存在将 add/remove 名称传递给 add/remove,从而使用 toggleClass
:
renderNode.toggleClass('big-text');
I'm using Famo.us + Angular. 我可以通过这样做来检索 classSurface 列表:
$scope.findElement = function() {
var elem = $famous.find("#colored-bg")[0].renderNode; // Returns Surface
console.log(elem.classList); // RETURNS: ["purple-bg", "container-border", "box-shadow"]
};
您不能对 Famo.us 对象执行您通常可以对 DOM 上的任何其他对象执行的任何操作。例如,我认为我可以添加、删除或替换 classes,类似于:
document.getElementById('id').classList.add('class');
document.getElementById('id').classList.remove('class');
不过,添加和删除不存在。我可以 return class 列表,甚至列表中的单个项目(例如:仅第一个 class),但您不能更改它。有什么建议吗?
Tony Alves 在 Famo.us Slack Chat 中找到答案:
renderNode.setClasses(['white-bg']);
此信息是在 github docs 中找到的。所以整个函数看起来像这样:
$scope.findElement = function() {
var elem = $famous.find("#colored-bg")[0].renderNode;
console.log(elem);
elem.setClasses(['white-bg']);
console.log(elem.classList); // RETURNS: ["white-bg"]
};
setClasses 将接受一个字符串数组,并将其放入 Fa-Surface。
setClasses
方法接受一个数组,您可以使用以下方法设置 classes:
renderNode.setClasses(['white-bg', 'big-text']);
通过传递 class 名称使用 addClass
添加 class 使用:
renderNode.addClass('big-text');
通过传递 class 名称使用 removeClass
删除 class 使用:
renderNode.removeClass('big-text');
根据 class 名称是否存在将 add/remove 名称传递给 add/remove,从而使用 toggleClass
:
renderNode.toggleClass('big-text');