Angular JS 控制器之间的共享函数
Angular JS Shared functions between controllers
我有这个代码:
http://jsbin.com/gazajunacu/1/edit?html,js,output
angular.module('app', [])
.service('greeting', function Greeting() {
var greeting = this;
greeting.message = '<strong>Default 2</strong>';
})
.controller('FirstCtrl', function ($sce, greeting) {
var first = this;
first.greeting = $sce.trustAsHtml(greeting);
})
.controller('SecondCtrl', function (greeting) {
var second = this;
second.greeting = greeting;
})
而且我无法让它为第一个控制器吐出 html。我无法让它工作。请检查脚本中缺少的内容。
谢谢。
这应该有帮助
angular.module('app', [])
.service('greeting', function Greeting() {
var greeting = this;
greeting.message = '<strong>Default 2</strong>';
})
.controller('FirstCtrl', function (greeting) {
var me = this;
me.greeting = greeting;
})
.controller('SecondCtrl', function ($scope,greeting) {
var me = this;
me.greeting = greeting;
})
;
下一行造成了您的错误
first.greeting = $sce.trustAsHtml(greeting);
问题是您的库中没有包含 angular-sanitize.js。
实现该目标的正确方法是:http://jsbin.com/rowukowuba/1/edit
在页面中包含 angular-sanitize.js 并在 html 页面中使用 ng-bind-html 指令。
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0-beta.5/angular-sanitize.js"></script>
<div>
<span ng-bind-html="greeting"> </span> World
</div>
<div ng-controller="SecondCtrl as second">
<span ng-bind-html="greeting.message"> </span> in Second
</div>
</body>
在 javascript 中,只需将 html 代码放在范围内并确保包含 ngSanitize(我调整了你的代码):
angular.module('app', ['ngSanitize'])
.service('greeting', function Greeting() {
var greeting = this;
greeting.message = '<strong>Default 2</strong>';
})
.controller('FirstCtrl', function ($scope, greeting) {
$scope.greeting = '<strong>Default 2</strong>';
})
.controller('SecondCtrl', function ($scope, greeting) {
$scope.greeting = greeting;
});
我有这个代码: http://jsbin.com/gazajunacu/1/edit?html,js,output
angular.module('app', [])
.service('greeting', function Greeting() {
var greeting = this;
greeting.message = '<strong>Default 2</strong>';
})
.controller('FirstCtrl', function ($sce, greeting) {
var first = this;
first.greeting = $sce.trustAsHtml(greeting);
})
.controller('SecondCtrl', function (greeting) {
var second = this;
second.greeting = greeting;
})
而且我无法让它为第一个控制器吐出 html。我无法让它工作。请检查脚本中缺少的内容。
谢谢。
这应该有帮助
angular.module('app', [])
.service('greeting', function Greeting() {
var greeting = this;
greeting.message = '<strong>Default 2</strong>';
})
.controller('FirstCtrl', function (greeting) {
var me = this;
me.greeting = greeting;
})
.controller('SecondCtrl', function ($scope,greeting) {
var me = this;
me.greeting = greeting;
})
;
下一行造成了您的错误
first.greeting = $sce.trustAsHtml(greeting);
问题是您的库中没有包含 angular-sanitize.js。
实现该目标的正确方法是:http://jsbin.com/rowukowuba/1/edit
在页面中包含 angular-sanitize.js 并在 html 页面中使用 ng-bind-html 指令。
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0-beta.5/angular-sanitize.js"></script>
<div>
<span ng-bind-html="greeting"> </span> World
</div>
<div ng-controller="SecondCtrl as second">
<span ng-bind-html="greeting.message"> </span> in Second
</div>
</body>
在 javascript 中,只需将 html 代码放在范围内并确保包含 ngSanitize(我调整了你的代码):
angular.module('app', ['ngSanitize'])
.service('greeting', function Greeting() {
var greeting = this;
greeting.message = '<strong>Default 2</strong>';
})
.controller('FirstCtrl', function ($scope, greeting) {
$scope.greeting = '<strong>Default 2</strong>';
})
.controller('SecondCtrl', function ($scope, greeting) {
$scope.greeting = greeting;
});