【问题标题】:AngularJS: Load view from Controller?AngularJS:从控制器加载视图?
【发布时间】:2013-09-24 15:45:23
【问题描述】:

我想了解如何从控制器加载视图?

示例,假设:

myFile.html
<p>{{foo}}</p>

.controller("myCtrl", function(){
    $scope.html = loadFileHere("My foo", "myFile.html");
    console.log($scope.html);
});

I'd expect the output:
<p>My foo</p>

这样可以吗?

谢谢!

【问题讨论】:

  • 你想在第一个 html 中添加另一个 html 文件。

标签: angularjs


【解决方案1】:

我猜你在谈论加载部分?您不会真正使用控制器加载视图,尽管您可能可以......我会使用您的路线来加载视图。您的控制器会将您的范围数据返回到您的局部视图,然后您会将其加载到 ng-view div 或其他任何内容中。比如……

在你的 app.js(或任何你称之为的)中,假设你的 myFile.html 位于同一目录中:

angular.
    module('app', []).
    config(['$routeProvider', function($routeProvider) {
        $routeProvider.
        when('/myFile', { templateUrl: 'myFile.html', controller: MyCtrl }).
        otherwise({ redirectTo: '/' });
}]);

然后可能在 controllers.js 文件中:

function MyCtrl($scope) {
    $scope.foo = "My foo";
}

然后在你的 myFile.html 部分:

<p>{{foo}}</p>

然后您的 index.html 文件可能如下所示:

<!doctype html>
<html ng-app="app">
<head>
    <script src="js/angular.min.js"></script>
    <script src="js/app.js"></script>
    <script src="js/controllers.js"></script>
</head>
<body>
<div ng-controller="MyCtrl">
    <div class="container">

        <div ng-view></div>

    </div> <!-- /container -->
</div>
</body>
</html>

【讨论】:

  • 感谢收看!我想这是一个不好的做法,但我试图避免在我的控制器中编写一些 html。
  • @heldrida 我想我只是不明白。我上面写的控制器中没有 HTML。唯一的 html 在索引和部分文件中。如果您不想使用部分内容,它也可以很容易地出现在索引中...我只是从您的第一个问题中假设这就是您要查找的内容。
  • @heldrida 也许我明白你现在在说什么......我认为你所说的可以使用指令和编译功能来完成......看看这篇文章,看看是否很有帮助stackoverflow.com/questions/14846836/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多