Первая проблема заключается в том, что для использования фабрики myFactory
в вашем контроллере вам необходимо ввести ее в контроллер через внедрение зависимостей :
app.controller("helloController", function($scope, myFactory) {
$scope.clickme = function() {
$scope.service = myFactory.getsum();
}
});
Второй проблемой вы бы не сталииспользуйте $scope
в фабричном методе myFactory
getsum()
, вы просто вернете нужное вам значение:
app.factory("myFactory",function(){
var something = {};
something.getsum = function() {
return " heloo people";
}
return something;
});
Третья проблема заключается в том, что ng-click
фактически не выполнял функцию контроллера clickme
, посколькубыла скобка ()
как и в любой функции JavaScript.Для фактического вызова функции на контроллере должно быть ng-click="clickme()"
:
<div ng-controller="helloController">
<button ng-click="clickme()"></button>
<h2>{{service}}</h2>
</div>
Наконец, неясно, какова структура вашего приложения на основе предоставленной вами конфигурации ui-router
.С ui-router
вам не нужно было бы использовать ng-controller
, так как вы можете указать, какой контроллер должен использовать данный вид.Я создал несколько Plunkers, one и two , демонстрируя фабричную функциональность с контроллерами и без них, заданными для дочерних маршрутов.Этого должно быть более чем достаточно для демонстрации вызова функции контроллера в различных ситуациях.
Надеюсь, это поможет!