javascript - 动态更新 ng-include

标签 javascript html angularjs

这对于任何了解 Angular 的人来说都应该很容易——另一方面,我对它非常陌生。我试图使用 ng-include 组合一个简单的示例但不清楚为什么包含内的变量没有更新。

我在页面中包含一些html(不确定ng-model是否是必要的):

<div ng-model="template" ng-include="template.url"></div>

我有一个按钮:

<a class="btn btn-lg btn-success" ng-model="template" ng-click="switch()" ng-href="#">Change!</a>

从 Controller 调用一个函数,如下所示:

app.controller('MainCtrl', function ($scope) {
        $scope.templates =
        [ { name: 'Template1', url: 'views/template1.html'},
        { name: 'Template2', url: 'views/template2.html'} ];

    $scope.template = $scope.templates[0];

    $scope.switch = function() {
        $scope.template = $scope.templates[1];
        console.log($scope.template);
        return $scope.template;
    };
}

);

控制台中显示的变量?正确的。但页面上没有任何变化。

更新:所以这段代码可以工作。所需要的是删除 href 属性,在某些情况下会重新加载页面。如果这是真的,那么有没有一种方法可以做到这一点,其中有故障保护?即,href 在没有 javascript 的情况下工作正常,但是 ng-include 在 javascript 工作时工作?

最佳答案

看起来不错,try it in this plunkr 。我唯一更改的是模板的 URL。


Here is a fiddle还表明它可以在有或没有 ng-href 的情况下工作。
<a class="btn btn-lg btn-success" ng-click="switch()" ng-href="#">Change!</a>
<a class="btn btn-lg btn-success" ng-click="switch()">Change!</a>
看到 Sunil 的评论后,我在 bootstrap css 中添加了内容,以明确不需要 href 来获得所需的样式。它可以毫无问题地移除。但是,不幸的是,plnkr 和 jsfiddle 没有重现您所经历的重新加载。

关于javascript - 动态更新 ng-include,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22290098/

相关文章:

javascript - InDesign 在 JavaScript 中扩展管理

javascript - 用户上传文件时选择文件夹

css - border-bottom 出现在元素的顶部

javascript - 重复调用 Ng-Options 表达式

javascript - 比较显示意外结果的日期对象

javascript - 总结一个数字Javascript的所有数字

php - 单击我的提交按钮时没有任何反应 没有 _POST 值

javascript - 在 nav ul li h4 中使用 jQuery 添加/删除链接类

javascript - Firefox 在每次请求 Promise ajax 调用时弹出 "This web page is being redirected to a new location"- 有什么办法可以避免吗?

javascript - 错误 : [ng:areq] Argument 'demoCtrl' is not a function, 未定义