1

我正在使用 Famo.us + Angular。我可以通过这样做来检索 Surface 的 classList:

$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 上的任何其他对象执行的操作。例如,我认为我可以添加、删除或替换类,类似于:

document.getElementById('id').classList.add('class');
document.getElementById('id').classList.remove('class'); 

但是,添加和删除不存在。我可以返回班级列表,甚至可以返回列表中的单个项目(例如:只是第一节课),但您不能更改它。有什么建议么?

4

2 回答 2

1

setClasses方法采用一个数组,您可以使用以下方法设置类:

renderNode.setClasses(['white-bg', 'big-text']);

通过addClass传递类名来添加一个类,使用:

renderNode.addClass('big-text');

通过removeClass传递类名来删除一个类,使用:

renderNode.removeClass('big-text');

通过toggleClass传递类名来根据它是否存在来添加/删除:

renderNode.toggleClass('big-text');
于 2015-06-16T20:13:38.003 回答
0

想通了,托尼·阿尔维斯在 Famo.us 闲聊中的礼貌:

renderNode.setClasses(['white-bg']);

此信息可在github 文档中找到。所以整个函数看起来像这样:

$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。

于 2015-06-16T20:03:01.707 回答