1
我用角咆哮,其是用於表示消息相當不錯。 (https://github.com/marcorinck/angular-growl),角咆哮不顯示
可以在控制器中添加消息,但是在指令中添加消息時,不顯示,爲什麼? 這是我的測試代碼。
a.html
<?xml version="1.0" encoding="UTF-8" ?>
<!doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="https://raw.github.com/marcorinck/angular-growl/master/src/growl.css" />
<script type="text/javascript" src="../lib/angular/angular.js"></script>
<script type="text/javascript" src="../lib/angular-growl/angular-growl.js"> </script>
<script type="text/javascript" src="../lib/angular-route/angular-route.js"> </script>
<script type="text/javascript" src="a.js"></script>
</head>
<body>
<div ng-view=""></div>
<div growl="" class='growl-container'></div>
</body>
</html>
a.js
'use strict';
var module = angular.module('a', ['ngRoute', 'angular-growl']);
module.config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/', {
controller: 'IndexCtrl',
template: '<button aaa>aaaa</button>'
});
}]);
module.controller('IndexCtrl', ['growl', function (growl) {
growl.addErrorMessage('haha');
}]);
module.directive('aaa', ['growl', function (growl) {
return {
restrict: 'A',
scope: {},
link: function (scope, element, attrs) {
element.bind('click', function (e) {
console.log('aaa');
growl.addErrorMessage('aaa');
growl.addErrorMessage('bbb');
});
}
};
}]);
var $html = angular.element(document);
$html.ready(function() {
angular.bootstrap($html, ['a']);
$html.addClass('ng-app');
});
讚賞,這也正是根本原因。 但是爲什麼angular並不會自動在element.bind中做到這一點,你認爲有可能實現這一點? – sww176
很高興看到您的問題解決!但是不,角度不能在你自己定義的回調函數中自動完成,並且在瀏覽器中調用。正是爲此,創建了$ apply。但是更好的解決方案是使用已經提到的ng-click。好運與角咆哮! –
我寫了一個「AAA」指令,而不是原因NG點擊=「AAA()」是,我的合作伙伴之一,我提供HTML和CSS,他認爲這是很好的使用語義HTML,通過寫「做登錄」指令,我可以將登錄事件綁定到一個按鈕,他認爲添加'do-login'或'data-do-login'更可接受,ng-click =「doLogin()」似乎過於程序化(儘管它們都是指令)。 – sww176