【问题标题】:How to get famo.us/angularjs element from html as famo.us constructed object in the controller?如何从 html 中获取 famo.us/angularjs 元素作为控制器中的 famo.us 构造对象?
【发布时间】:2014-08-30 03:06:47
【问题描述】:

html 中有这样的 html famo.us/Angular 滚动视图对象代码

    <fa-scroll-view>
              content
    </fa-scroll-view>

我想将滚动视图作为 famo.us 滚动视图对象,就像它在控制器中使用“new Scrollview()”来控制它一样......提前谢谢你。

我听说过一个叫做 $ Famous.find 的东西,但我不知道如何使用它。

【问题讨论】:

    标签: angularjs famo.us


    【解决方案1】:

    首先,您需要在 HTML 中添加一个标识符:

    HTML

    <fa-scroll-view id="myId">
        content
    </fa-scroll-view>
    

    根据您使用引用的位置(即 Angular 控制器、指令等),您必须注入 $famousProvider,然后您可以使用 find 函数检索 javascript 对象。如果您尝试在控制器中使用该对象,您可以像这样声明控制器:

    JS

    ...
    app.controller("MainCtrl", ['$famousProvider',function($famousProvider){
    
        var scrollView = $famousProvider.find("#myId");
        ...
    })
    ...
    

    这当然假设您已经声明了 Angular 应用程序并添加了对 famo.us 库的引用。此外,famo.us 文档在选择器的格式方面也不是很清楚。因此,如果使用"#myId" 的查找不起作用,请尝试仅使用"myId"

    【讨论】:

    • 它给了我匿名注入器 $ FamousProvider 的错误,在 Famous.js 中,文档说 @name $ FamousProvider 但指令名称只是 $ Famous,这里:github.com/Famous/famous-angular/blob/master/src/scripts/… 如果你有修改后的文件版本或其他东西,请告诉我在哪里可以找到它...谢谢。
    • 他们的文档不正确。您应该在上面指出 $ FamousProvider 的地方使用 $ Famous。或者如果您已经尝试过,您是否遇到任何错误?
    • 是的,我也试过 $ Famous,它检索未定义!我尝试了 class 而不是 id 并尝试删除点或哈希符号,但同样的错误,未定义!他们文档中的描述:查看:* html * &lt;fa-scroll-view id="myScrollView"&gt;&lt;/fa-scroll-view&gt; * * 控制器:* ```javascript * var scrollViewReference = $ Famous.find('#myScrollView')[0].renderNode; * //现在 scrollViewReference 指向 Famo.us Scrollview 对象 * //我们在视图中创建。
    • $ Famous.find 和我一起工作,我只需要将行放在 $http.success 中就可以看到 fa-scroll-view...非常感谢。
    • 正如@MohamedSeif 所说,在尝试查找元素之前,您必须等待所有内容都加载完毕。所以你可以在一些回调中找到它,或者只是设置几秒钟的超时,然后它就会在那里
    猜你喜欢
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多