【问题标题】:Understanding ng-show in AngularJS directives了解 AngularJS 指令中的 ng-show
【发布时间】:2013-12-31 14:41:05
【问题描述】:

给定以下代码:

http://jsbin.com/uYETOSUM/2/edit?html,js,output

我只想先显示第一个下拉列表(JSON 中的父问题)。在用户选择了一个选项后,我想显示另外两个下拉列表之一(JSON 中的附加问题对象中的子项)。在用于创建表单输入字段的 JSON 中给出了要显示的下拉列表。

为此,我尝试了ng-show,但我似乎没有找到放置自定义ng-show 代码的合适位置。我希望ng-show 在模板中是这样的:

ng-show"showQuestion()" 

其中showQuestion() 遍历所有问题并匹配PreviousQuestionConstraint,以根据第一个问题中所选选项的值查看要显示的其他问题。

  • 应该在控制器中吗?
  • 应该在指令中吗?
  • 是否应该在指令的链接器函数中?

到目前为止的所有尝试都没有显示任何内容。

【问题讨论】:

    标签: angularjs angularjs-directive angularjs-scope ng-show


    【解决方案1】:

    经过一番麻烦后,我设法使用&attr 隔离范围语法为您提供了一个工作示例,该语法提供了一种在父范围的上下文中执行表达式的方法,在您的示例中一直到showQuestion() QuestionsCtrl 控制器上的函数。

    http://jsbin.com/EkIqAju/2/edit

    【讨论】:

    • 太棒了!如果这很麻烦,也许这不是 Angular 的正确方法? IE。如何在showQuestion() 函数中获取当前指令的对象?换句话说,如何访问控制器中针对showQuestion() 验证的问题对象?
    • @user3097455 我以前从未真正使用过像您的示例这样的递归指令,发现我必须为两个指令中的每一个使用两个单独的属性名称才能工作。鉴于您的要求,我认为这是正确的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-08
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    相关资源
    最近更新 更多