2017-03-27 69 views
2

我想嘗試使用Angular 2應用程序的Realm Mobile Platform,但它看起來像我無法在Angular 2中使用Realm的Javascript版本。如果我能夠在我的Angular 2應用程序中使用Realm,我去設置它?Angular 2可以使用Realm嗎?

到目前爲止,我已經成功運行了npm install --save realm,並且我的應用程序模塊試圖導入該程序包並初始化所有內容。

import * as Realm from 'realm'; 

import { BrowserModule } from '@angular/platform-browser'; 
import { NgModule } from '@angular/core'; 
import { FormsModule } from '@angular/forms'; 
import { HttpModule } from '@angular/http'; 

import { AppComponent } from './app.component'; 

Realm.Sync.User.login('http://local:9080', 'someUser', 'somePass', (e, user) => { 
    if(e) { 
    console.log(e); 
    return; 
    } 
}); 

@NgModule({ 
    declarations: [ 
    AppComponent 
    ], 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    HttpModule 
    ], 
    providers: [], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 

,我發現了以下錯誤和警告:

WARNING in ./~/realm/lib/index.js 
23:11-26 Critical dependency: the request of a dependency is an expression 

WARNING in ./~/realm/lib/index.js 
77:27-48 Critical dependency: the request of a dependency is an expression 

WARNING in ./~/realm/lib/user-methods.js 
24:11-26 Critical dependency: the request of a dependency is an expression 

ERROR in ./~/realm/lib/browser/index.js 
Module not found: Error: Can't resolve 'react-native' in '/vagrant/angular-realm-test/node_modules/realm/lib/browser' 
@ ./~/realm/lib/browser/index.js 21:0-45 
@ ./~/realm/lib/index.js 
@ ./src/app/app.module.ts 
@ ./src/main.ts 
@ multi webpack-dev-server/client?http://localhost:4200 ./src/main.ts 

我很困惑,因爲我已經包含其他第三方庫,如火力地堡,在角2級的應用程序沒有問題。我不完全確定這裏發生了什麼,所以詳細的解釋將不勝感激。

我瞭解到,如果沒有專業版或企業版,同步選項不可用。因爲我已經嘗試做以下的組件:

import * as Realm from 'realm'; 

import { Component } from '@angular/core'; 

@Component({ 
    selector: 'app-root', 
    templateUrl: './app.component.html', 
    styleUrls: ['./app.component.css'] 
}) 
export class AppComponent { 
    title = 'app works!'; 

    constructor() { 
     const CarSchema = { 
      name: 'Car', 
      properties: { 
       make: 'string', 
       model: 'string', 
       miles: {type: 'int', default: 0}, 
      } 
     }; 
     const PersonSchema = { 
      name: 'Person', 
      properties: { 
       name:  'string', 
       birthday: 'date', 
       cars:  {type: 'list', objectType: 'Car'}, 
       picture: {type: 'data', optional: true}, // optional property 
      } 
     }; 

     // Initialize a Realm with Car and Person models 
     let realm = new Realm.Realm({schema: [CarSchema, PersonSchema]}); 
    } 
} 

上面的代碼給了我同樣的錯誤。

回答

1

目前realm-js只適用於節點環境。 使用前端框架獲得領域的唯一方法是使用Node.JS,它在electron中幸運地可用!

你可以嘗試,如果你在這樣一個實現好奇克隆我的境界與電子在這裏工作的回購: https://github.com/mbalex99/realm-electron

注:

  1. 我已經使用了精細MacOSX上, Linux和Windows
  2. 同步功能僅適用於MacOSX。如果你沒有專業版或企業版,你可以在Linux上使用它。 You can download a trial of it here
+0

Is not Electron for making desktop apps?如果有某種方式可以讓應用程序重新上網,那就太好了。但是,我認爲這是一個非常迂迴的做法。這是你的建議嗎? – jeffmcnd

+0

Yeah Electron是用於在節點環境中使用Web技術製作桌面應用程序的。目前,realm-js僅適用於節點可用。 我完全聽到您的瀏覽器支持,這是我們將來希望支持的內容。 –

相關問題