【问题标题】:Reusing code but with custom content重用代码但具有自定义内容
【发布时间】:2013-09-16 21:53:53
【问题描述】:

我有一堆页面,其中包含用于页面底部按钮和内容的漂亮页脚区域的代码:

<nav class="navbar navbar-default navbar-fixed-bottom" role="navigation">
    <div class="container">
        <div class="navbar-inner">
            <footer>
                <a class="btn btn-warning actionButton" href="#/">
                    <i class="glyphicon glyphicon-trash icon-white" />
                    Cancel
                </a>
                <a class="btn btn-primary actionButton" data-ng-click="saveSampleForm(sampleForm)" data-ng-disabled="form.$invalid">
                    <i class="glyphicon glyphicon-ok icon-white" />
                    Save
                </a>
                <div class="version">v{{applicationdata.Version}}</div>
            </footer>
        </div>
    </div>
</nav>

我知道 nginclude 标记,但有没有办法重用这段代码的 nav 部分,但有自定义的 &lt;footer&gt; 内容?按钮会随着页面的变化而变化。也许是指令?还在学习这些东西... 编辑:我知道我可以将 &lt;footer&gt; 内容的代码添加到我的 $scope 中,然后使用 {{footerContent}},但我更愿意将 html 排除在我的模型之外。

【问题讨论】:

    标签: angularjs angularjs-directive angularjs-ng-include


    【解决方案1】:

    您当然可以这样做。这是一个使用指令嵌入的想法。

    指令

    app.directive('navFooter', function() {
      return {
        templateUrl: 'nav.html',
        replace: true,
        transclude: true,
        restrict: 'E'
      }
    })
    

    nav.html

    <nav class="navbar navbar-default navbar-fixed-bottom" role="navigation">
        <div class="container">
            <div class="navbar-inner">
                <footer ng-transclude>
                </footer>
            </div>
        </div>
    </nav>
    

    用法

    <nav-footer>
      <a class="btn btn-warning actionButton" href="#/">
          <i class="glyphicon glyphicon-trash icon-white"></i>
          Cancel
      </a>
      <a class="btn btn-primary actionButton" data-ng-click="saveSampleForm(sampleForm)" data-ng-disabled="form.$invalid">
          <i class="glyphicon glyphicon-ok icon-white"></i>
          Save
      </a>
      <div class="version">v{{applicationdata.Version}}</div>
    </nav-footer>
    

    Demo link

    【讨论】:

    • 漂亮!感谢您提供的出色示例,这正是我想要的。
    • 其实是后续问题。 nav-footer 在我的页面中显示为无法解决...没什么大不了的,但有没有办法让这件事变得快乐?
    • 您的意思是我发送的示例链接不起作用? plnkr.co/edit/iTysbI4EVI6Crrs69XMv?p=preview?它对我来说很好。错误信息是什么?
    • 邮件是Cannot resolve tag nav-footer。这是在VS2012中。一切正常,但弹出此警告。没什么大不了的,只是想我会问。
    • 大声笑,这完全是另一个故事。 VS2012 显然不喜欢它不理解的标签。看看您是否可以配置 VS.NET,或者将指令更改为属性指令,请参阅此更新,例如:plnkr.co/edit/NkZ5JXsRKASPNPDzI4AT?p=preview。相同的行为,只是稍作调整以保留原始标签。
    猜你喜欢
    • 1970-01-01
    • 2019-10-09
    • 2015-02-10
    • 2011-06-16
    • 2022-06-10
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多