我的<script src="">
之外有ng-view
,脚本本身是一个jQuery函数,可以更改ng-view
内的内容,但除非我放{{1}在我正在渲染的html页面内。这是非常烦人的并打破了DRY规则(不要重复自己),因为我现在必须将所述脚本放在我的所有html文件中,因为将它放在index.html的底部是行不通的。
这是我的index.html
<script src="">
注意:“...”表示代码太大而必须取出才能读取。
现在在<!DOCTYPE html>
<html ng-app="enitoniApp">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Stylesheets -->
<link rel="stylesheet" href="global.css">
<link rel="stylesheet" href="pages/css/home.css">
<!-- Fonts -->
<link href='http://fonts.googleapis.com/css?family=Roboto:400,300italic,300,100italic,100,400italic,500,500italic,700,700italic,900italic,900' rel='stylesheet' type='text/css'>
</head>
<body ng-controller="mainController">
...
<!-- Angular -->
<div class="wrap">
<div ng-view></div>
...
</body>
<!-- Javascripts -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.js"></script>
<script src="js/angular_script.js"></script>
<!--- Global Script -->
<script src="js/global.js"></script>
<!--- Content -->
<script src="js/contentinject.js"></script>
</html>
内,我们有:
contentinject.js
修改了以下的DOM:
home.html(注入ng-view的内容,也是我们的部分示例)
/** Content Injection **/
function isValid() {
$.getJSON("/js/content.json", function (d) {
console.log("json parsing of 'content.json' performed successfully.");
}).fail(function (d, textStatus, error) {
errorCall("Fatal error", "json", "Something went wrong and the site may not properly display, if the problem persists contact the website administrator.<br/><br/>Sorry about that.","<b>Couldn't parse 'content.json'</b><br/><br/>" + error)
});
}
setTimeout(isValid, 2000)
$.getJSON("/js/content.json", function (data) {
$(".lander .title").text(data.lTitle);
$(".lander .subtitle").text(data.lSubtitle);
$(".lander .text").html(data.lText.split('\n').join('<br />'));
});
现在你可以看到,脚本清晰地位于文档的底部,也位于angular.js下,所以它应该加载并注入部分内容,但事实并非如此。如果我将<body>
<div class="lander">
<div class="w-ctrl">
<div class="container">
<div class="title-con">
<div class="title"></div>
<div class="subtitle"></div>
</div>
<div class="text-con">
<div class="text"></div>
</div>
</div>
</div>
</div>
</body>
放在home.html中,它就可以了。
有什么方法吗?
答案 0 :(得分:0)
如果您已为视图指定了某个控制器,则每次加载视图时都会调用控制器。在这种情况下,您可以在调用它时立即在控制器中执行一些代码。
这样的事情:
<ion-nav-view ng-controller="indexController" name="other"></ion-nav-view>
并在您的控制器中:
app.controller('indexController', function($scope) {
/*
Write some code directly over here
without any function, and it will be executed every time your view loads.
Something like this:
*/
$scope.xyz = 1;
});
您可以在this回答..
中找到更多详情