angular.module('app')
.directive('myDirective', function () {
return function (scope, el, attr) {
scope.$watch('variable', function (text) {
console.log('$scope.variable = %s', text);
}
}
});
Я с ангуляром не знаком, только jquery
angular.module('productStore', [])
.factory('productRepository', function ($http) {
var dataResolve = function(promise) {
return promise.then(function(response) {
return response.data;
}
}
return {
getProducts: function (category) {
category = category || '';
return dataResolver($http.get('/api/productservice/' + category));
},
addToCart: function (id) {
return dataResolver($http.post('/api/cartservice/add/' + id));
},
getTotalPrice: function (callback) {
return dataResolver($http.get('/api/cartservice/'));
}
}
})
.controller('ProductController', function ($http, productRepository) {
var updateTotalPrice = angular.bind(this, function() {
return productRepository.getTotalPrice.then(angular.bind(this, function(result) {
this.totalPrice = result;
}));
});
updateTotalPrice();
productRepository.getProducts(category).then(angular.bind(this, function(results) {
this.products = results;
});
this.addToCart = function(id) {
productRepository.addToCart(id).then(function() {
updateTotalPrice();
};
}
});
var ProductController = new productStore.controller
angular.module('app', [])
.directive('foo', function () {
return function (scope, el, attr) {
el.append('<div bar></div>');
}
}
.directive('bar', function () {
return function (scope, el, attr) {
console.log('init bar directive');
}
});
<div ng-app="app">
<div foo></div>
</div>
angular.directive('foo', function ($compile) {
return function (scope, el, attr) {
var child = $compile('<div bar></div>')(scope);
el.append(child);
}
});
element.bind('click', function(){
scope.$apply(function () {
radiogroupCtrl.check(scope);
});
});
.directive('location', function () {
return {
restrict : 'A',
scope : {},
replace : true,
templateUrl : 'part.html',
link : function (scope, element, attr) {
element.hide();
}
}
})
body.append(directive);
setTimeout(function () {
body.find('[data-location], [location]').hide();
}, 250);
[{id: 1, username: 'foo'}, {id: 2, username: 'bar'}];
<script>
var accounts = new Backbone.Collection;
accounts.reset([{id: 1, username: 'foo'}, {id: 2, username: 'bar'}]);
</script>
<script>
angular.module('prefetchedData', [])
.constant('users', <%= @accounts.to_json %>)
.constant('projects', <%= @projects.to_json(:collaborators => true) %>);
</script>
angular.module('app')
.directive('ngBlurDelegate', function ($parse) {
return {
restrict: 'A',
link: function (scope, el, attr) {
var callback = $parse(attr.ngBlurDelegate);
el.on('blur', function () {
//.. тут что-то делать
callback(scope);
});
}
}
});
<form ng-blur-delegate="callback()">
...
</form>