javascript - angularjs ng-include 从 Controller 传递值

标签 javascript angularjs

我正在尝试将子页面包含到我的主页中..

我正在使用 ng-include.. 当我尝试使用这个 ng-include="'samplePage.php'" 它可以工作......但是我想要的是在 Controller 中分配 ng-include 的值...

这是我的 hmtl 代码

<div id="navbar-override" class = "navbar navbar-inverse navbar-static-top" ng-controller="indexCtrl">
        <div class = "container">
            <div class = "navbar-header">
                <a href = "index.html" class = "navbar-brand">
                    Sample App
                </a>
                <button id="navbar-btn-override" class = "navbar-toggle" data-toggle = "collapse" data-target = ".navHeaderCollapse">
                    <span class = "icon-bar"></span>
                    <span class = "icon-bar"></span>
                    <span class = "icon-bar"></span>
                </button>
            </div>
            <div class = "collapse navbar-collapse navHeaderCollapse">
                <ul class = "nav navbar-nav navbar-right">
                <li ng-repeat="link in Links"  ng-class="{'active': selectedItem === link}">
                    <a href = "javascript:void(0)" ng-click="Link(this)">{{ link }}</a>
                </li>
                </ul>
            </div>
        </div>
    </div>

    <div class="container" ng-include="pages">
          <!--subpages will append here-->
    </div>

我的controller.js

indexApp.controller('indexCtrl', ['$window','$scope', '$http', function($window, $scope, $http) {

$scope.pages = "./pages/customer.php";

}]);

如果你问我为什么这样做..因为我打算动态使用ng-include......

我对 AngularJS 还很陌生,所以请耐心等待...... 提前致谢..

最佳答案

这会起作用,

您的 HTML:

<div ng-controller="Ctrl">
    <select ng-model="template" ng-options="t.name for t in templates">
     <option value="">(blank)</option>
    </select>
    url of the template: <tt>{{template.url}}</tt>
    <hr/>
    <div ng-include src="template.url" onload='myFunction()'></div>
  </div>

<!-- template1.php-->
<script type="text/ng-template" id="./pages/template1.php">
  Content of template1.php
</script>

<!-- template2.php-->
<script type="text/ng-template" id="./pages/template2.php">
    <p ng-class="color">Content of template2.php</p>
</script>

Controller :

function Ctrl($scope) {
    $scope.templates = [{
        name: 'template1.php',
        url: './pages/template1.php'},
    {
        name: 'template2.php',
        url: './pages/template2.php'}];
    $scope.template = $scope.templates[0];

    $scope.myFunction = function() {
        $scope.color = 'red';
    }
}

http://jsfiddle.net/MfHa6/1517/

关于javascript - angularjs ng-include 从 Controller 传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36611965/

相关文章:

javascript - nightwatch 无法通过其 id 选择元素

javascript - 使用markerwithlabel类向Marker添加ID或类

javascript - Angular 中的 ng-switch 与父子 Controller

android - 无法使用 FileOpener2 打开文件,但在 Android 中未出现错误

javascript - 命名 AngularJS 模块的常用方法?

javascript - 如何通过触发按钮上的事件来在元素上平滑地左右滚动?

javascript - 格式化日期对象,使其精度以秒为单位

javascript - 快速检测 JS 事件(如 Facebook 消息)

javascript - 如果对象键存在,则向其中添加另一个对象

javascript - 插入数组不会更新 View