我是angular.js的新手,我只是想知道如何处理某种情况。
所以基本上,我得到的是一个容器:
<div ng-controller="ContainerController">
<container></container>
</div>
容器控制器和指令。
<script type="text/javascript" src="ContainerController.js"></script>
<script type="text/javascript" src="ContainerDirectives.js"></script>
现在,这些指令将<container>
标记替换为示例html:<example>{{ data }}</example>
现在在ContainerController的范围内,我已将数据定义为字符串。 (这是所有示例目的)。但是,当指令访问替换它时,由于范围,它无法找到变量。
发生这种情况的原因是ContainerDirective
脚本的范围不在ContainerController
范围内。意味着它无法访问变量。
我只是不确定这些情况的结构实践。我在哪里放置所有内容,以便ContainerDirective
可以访问ContainerController
范围。
我希望我已经足够好地解释了一切
Test.js
(function(){
angular.module('test', []);
})();
TestController.js
(function(){
angular
.module('test')
.controller('TestController', [
'$scope',
TestController
]);
function TestController($scope) {
$scope.test = 'test';
}
})();
TestDirective.js
(function(){
angular.module('test').directive('test', function () {
return {
replace: true,
templateUrl: 'src/test/view/test.html',
link: function (scope, element, attrs) {
}
};
});
})();
的test.html
<example><a href="abc/{{test}}">ClickMe</a></example>
index.html - body
<body ng-app="App" layout="row" ng-controller="TestController as page">
<test></test>
<script src="src/test/Test.js"></script>
<script src="src/test/TestController.js"></script>
<script src="src/test/TestDirective.js"></script>
<script type="text/javascript">
angular
.module('App', ['test']);
</script>
</body>
由于我重新命名某些变量并删除了大量数据的原因,但这是核心,我很难看到这个问题。
错误:[$ interpolate:noconcat]插值时出错:abc / {{test}} Strict Contextual Escaping禁止在需要可信值时连接多个表达式的插值。
答案 0 :(得分:0)
也许阅读这篇文章可以解决你的很多问题,我知道当我试图理解指令{I}}
对于您的问题,我想发布有关您的指令和控制器.js文件包含的更多信息。从那以后,它可以跟随哪些变量被丢弃和覆盖。
答案 1 :(得分:0)
所以我弄清楚到底出了什么问题。基本上角度不允许打印另一个位置的iframe,除非你先:
给他们完整的网址。
然后允许外部网址作为受信任的网站。
要做到这一点,我必须基本上添加: Test.js中的
angular.module('test', []).config(function($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist($sceDelegateProvider.resourceUrlWhitelist().concat([
'http://www.test.com/**'
]));
});
这基本上取了我的白名单并将新网址连接到了它。
然后在 test.html :
内<example><iframe ng-src={{src}}></iframe></example>