如何使它工作加载并一起准备好



我有这个代码...我加载了<head>很多文件.js,这很好用...但。。。 {{sec-intro}}是一个变量,有其值,但不加载文件...

<!-- language: lang-js -->
<script type="text/javascript">
    $( document ).ready(function() {
        jQuery('head').load( 'tpl/head.html' );
    });
</script>
<script type="text/javascript">
    $( document ).ready(function() {
        jQuery('#intro').load( 'tpl/sec-intro-{{sec-intro}}.html' );
    });
</script>

我不确定我是否知道你的意思,但如果 sec-intro 是一个 javascript 变量,你可以试试这个:

<script type="text/javascript">
    $( document ).ready(function() {
        jQuery('#intro').load( 'tpl/sec-intro-' + sec-intro + '.html' );
    });
</script>

但我认为你对使用 {{var}} 的 AngularJS 表示法感到困惑。

编辑:

好吧,首先变量名称不能有连字符,因此您需要更改该名称。

第二件事,你应该在控制器的代码中声明函数。 我做了一个小角度的应用程序,它是代码:

脚本:

var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
  $scope.secintro = '01';
  $scope.loadFunction = function(){
    jQuery('#intro').load('tpl/sec-intro-' + $scope.secintro + '.html');
  };
  $scope.loadFunction();
});

.HTML:

<!DOCTYPE html>
<html ng-app="plunker">
  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link rel="stylesheet" href="style.css" />
    <script data-require="jquery" data-semver="2.1.1" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script data-require="angular.js@1.0.x" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js" data-semver="1.0.8"></script>
    <script src="app.js"></script>
  </head>
  <body ng-controller="MainCtrl">
  </body>
</html>

然后你可以使用 loadFunction 作为 angularJS 函数,即:ng-init="loadFunction();"

 <body ng-controller="MainCtrl" ng-init="loadFunction();">
  </body>

这将在控制器准备就绪时执行函数,因此您不需要$scope.loadFunction();初始化。

这是 plunker 只需在控制台中打印正确的字符串。

我希望这最终对您有用。

最新更新