如何一起使用angularjs,prismic.io和browserify?

时间:2015-05-04 09:31:05

标签: angularjs browserify


我的目标是使用:
  - Angular 1.3.15
  - Prismic.io API
  - 浏览器化

在我的测试中,我可以做工作:
*带角度和浏览器的应用程序
*一个角度和prismic.io api的应用程序

当我尝试让三者一起工作时,这是我的代码 的 app.js

var angular = require('angular');
require('angular-route');
require('angular-prismicio'); 
require('prismic.io');
require('./controllers');

var app = angular.module('monApp', ['ngRoute', 'controllers', 'prismic.io']);

    app.config(['PrismicProvider', function(PrismicProvider) {
        PrismicProvider.setApiEndpoint('myApiUrl');
        PrismicProvider.setAccessToken('');
        PrismicProvider.setClientId('');
        PrismicProvider.setClientSecret('');
        PrismicProvider.setLinkResolver(function(ctx, doc) {
            return '#/document/' + doc.id + '/' + doc.slug + ctx.maybeRefParam;
        });
    }]);

我在控制器文件夹的根目录下:
index.js

angular.module('controllers', [])
.controller('HomeCtrl', require('./homeCtrl'));

问题出在控制器上:
HomeCtrl.js

module.exports = function($scope, $location, Prismic){
    var page = "1";
    debugger;
    Prismic.ctx().then(function(ctx){
        ctx.api.form('everything').page(page).ref(ctx.ref).submit(function(err, documents){
            if (err) {
                $location.path('/');
            }
            else {
                $scope.documents = documents;
                ...
            }
        });
    });
};

正确定义了Prismic对象,我可以得到它的一些属性,问题出在

Prismic.ctx()

在调试器中它给了我这个错误:

TypeError: Cannot read property 'Api' of undefined

1 个答案:

答案 0 :(得分:0)

你有没有得到这个问题的答案?您将需要html中包含的prismic.io javascript。我用凉亭安装了它:

<script src="bower_components/prismic.io/dist/prismic.io.js"></script>