当前位置: 首页 > 面试题库 >

使用ng-include时失去作用域

益银龙
2023-03-14
问题内容

我有这个模块的路线:

var mainModule = angular.module('lpConnect', []).
    config(['$routeProvider', function ($routeProvider) {
    $routeProvider.
        when('/home', {template:'views/home.html', controller:HomeCtrl}).
        when('/admin', {template:'views/admin.html', controller:AdminCtrl}).
        otherwise({redirectTo:'/connect'});
}]);

原始HTML:

<div ng-include src="views.partial1"></div>

partial1 HTML:

<form ng-submit="addLine()">
    <input type="text" ng-model="lineText" size="30" placeholder="Type your message here">
</form>

HomeCtrl

function HomeCtrl($scope, $location, $window, $http, Common) {
    ...
    $scope.views = {
        partial1:"views/partial1.html"
    };

    $scope.addLine = function () {
        $scope.chat.addLine($scope.lineText);
        $scope.lines.push({text:$scope.lineText});
        $scope.lineText = "";
    };
...
}

addLine功能$scope.lineTextundefined,这可以通过添加解决ng- controller="HomeCtrl"partial1.html,但它会导致控制器被调用两次。我在这里想念什么?


问题答案:

这是因为ng- include它会创建一个新的子范围,因此$scope.lineText不会更改。我认为这this是指当前范围,因此this.lineText应设置。



 类似资料:
  • 问题内容: 我是webpack的新手,现在我在我的一个有角度的项目中第一次使用它。 我想在我的html文件中使用require函数,以便为ng-include要求模板,如下所示: 我知道有像ng- cache和ngtemplate这样的加载器,但它们无法按我需要的方式工作。对于它们,我必须先在js中要求模板,然后再在html文件中使用模板名称。 如何做到这一点? 问题答案: 您可以在npm上使用w

  • 我在div上使用了,它可以正常工作,但是当我在其他输入上使用时,div上的停止工作。 工作代码[单击时调用附加项(项目)] 破损的代码[addItem(项目)未被调用] 相关JS代码 这里是http://plnkr.co/edit/eI5dvczO2E1Cp1SBPgQx?p=preview点击输入将带来下拉。在一种情况下,单击下拉菜单会将项目添加到选定列表中,但在其他情况下不会。 我已经试过调试

  • 问题内容: 刚达新到角。是否可以用包含的模板的内容 替换 ng-include节点?例如,使用: 生成的html是: 但是我想要的是: 问题答案: 我遇到了同样的问题,但仍然希望ng- include的功能包括动态模板。我正在构建一个动态的Bootstrap工具栏,我需要更清洁的标记才能正确应用CSS样式。 这是我为感兴趣的人提供的解决方案: HTML: 自定义指令: 如果在上面的示例中使用了此解

  • 我不是在构建一个单页应用程序,而是在某些地方使用AngularJS的“传统”站点。我遇到了以下问题(使用1.3.0-beta.6): 标准,工作锚链接: 那很好。现在我在某处介绍一个模板: 可通过以下方式调用: 部分已正确包含,但锚链接不再工作。点击链接文本现在将显示的URL更改为而不是并且页面位置不会更改。 我的理解是,使用隐式地告诉Angular我想要使用routes系统并覆盖浏览器的本机锚链

  • 问题内容: 在我的应用程序中的多条路线之间导航时,我在angularJS中遇到document.ready问题。它仅在使用ctrl + f5(页面重新加载)时有效;似乎在页面之间导航不会将文档的状态更改为就绪。 控制者 主HTML文件 应用程式档案 问题答案: 您可以在路由定义你的控制器即听和对事件。每次重新加载ngView内容时都会发出,并且应提供与angularjs中路由时类似的功能: 该也触

  • 问题内容: 这是我的柱塞: http://plnkr.co/edit/oIei6gAU1Bxpo8VUIswt 单击该按钮后,应在“ Hello World!”之前插入以下内容。跨度: 减去脚本标签,当然。 我是通过动态插入以下div来实现的: 然后进行编译。但是,如果您查看日志,则编译后剩下的唯一内容是: 这里发生了什么?为什么我的插入内容无法正确编译?逻辑如下: 问题答案: 在 快速 的答案可