使用缓存工厂找不到功能?

时间:2014-03-14 19:38:32

标签: angularjs

我试图做一个小例子来学习使用cachefactory,但我得到了错误 “Argument'CacheSampleController'不是函数”

这是我的应用

var eventsApp = angular.module('eventsApp', ['ngResource'])
    .factory('myCache', function($cacheFactory) {
        return $cacheFactory('myCache', {capacity:3});
    });

这是hmtl文件:

<div ng-controller="CacheSampleController" style="padding-left:20px; padding-right:20px">

        key: <input type="text" ng-model="key"/><br/>
        value: <input type="text" ng-model="value"/><br/>
        <button type="button" class="btn" ng-click="addToCache(key, value)">Add To Cache</button><br/>
        <br/>
        <br/>
        <input type="text" ng-model="keyToRead"/><br/>
        <h3>Value from cache: {{readFromCache(keyToRead)}}</h3>
        <h3>Cache Stats: </h3>{{getCacheStats()}}


    </div>

这是控制器

eventsApp.controller('CacheSampleController',
    function CacheSampleController($scope, myCache) {
        $scope.addToCache = function(key, value) {
            myCache.put(key, value);
        };

        $scope.readFromCache = function(key) {
            return myCache.get(key);
        };

        $scope.getCacheStats = function() {
            return myCache.info();
        };
    }
);

我不确定它是否是语法错误或其他我没看到的东西? 感谢

2 个答案:

答案 0 :(得分:0)

将ng-app添加到htm elemvent

<html ng-app="eventsApp">

按此顺序加载您的js文件

<script src="app.js"></script>
<script src="script.js"></script>

您的服务应该是这样的

var eventsApp = angular.module('eventsApp', [])
.factory('myCache', function($cacheFactory) {
    return $cacheFactory('myCache', {capacity:3});
});

请检查:plnkr

答案 1 :(得分:0)

您必须将(CacheSampleController.js)包含在您的页面中,如下所示:

<script src="/js/controllers/CacheSampleController.js"></script>

在(app.js)行之后添加它,我相信它会起作用。