GVKun编程网logo

我们可以使用Ionic 2和AngularJs 1吗?(ionic-angular)

18

如果您想了解我们可以使用Ionic2和AngularJs1吗?和ionic-angular的知识,那么本篇文章将是您的不二之选。我们将深入剖析我们可以使用Ionic2和AngularJs1吗?的各个方

如果您想了解我们可以使用Ionic 2和AngularJs 1吗?ionic-angular的知识,那么本篇文章将是您的不二之选。我们将深入剖析我们可以使用Ionic 2和AngularJs 1吗?的各个方面,并为您解答ionic-angular的疑在这篇文章中,我们将为您介绍我们可以使用Ionic 2和AngularJs 1吗?的相关知识,同时也会详细的解释ionic-angular的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

我们可以使用Ionic 2和AngularJs 1吗?(ionic-angular)

我们可以使用Ionic 2和AngularJs 1吗?(ionic-angular)

我想使用Ionic 2开发应用程序,但是现在我正在使用Ionic1的angularJS1。

我觉得AngularJs 1对我来说很舒适,但对AngularJS 2来说不是,所以有什么方法可以与Ionic 2和AngularJS 1一起使用?

答案1

小编典典

抱歉不行。

Ionic 2基于AngularJS 的新 2.x(及更高版本)版本 ,并具有许多显着的性能,可用性和功能改进。

Ionic(1)从根本上来说只是AngularJS(1)的包装器和指令/组件库。同样,利用Angular 2+的所有优点,以相同的方式构建Ionic 2。

因此,基本上,必须进行所有升级才能获得Ionic
2的好处。如果您拥有的一切都可以正常工作,并且性能也不低下,则实际上没有理由对其进行升级,也许是在开始新项目时(或您当前的项目很小,这很容易)

AngularJS ng单击以转到另一页面(使用Ionic框架)

AngularJS ng单击以转到另一页面(使用Ionic框架)

理想情况下,当我单击按钮(位于顶部离子导航栏上)时,它应该将我带到另一页。但是它不起作用。单击后,导航栏按钮全部消失。

当我使用伪代码时,它可以工作;警报出现。但是,当我将其交换为实际代码时,它将无法正常工作。

我感觉控制器代码以及URL或视图的引用方式有问题。但是使用href和ui-sref进行测试也无法产生任何结果。Google Devt
Tools(JS控制台)和Batarang也没有显示任何内容。

有人可以给我指路吗?

虚拟HTML代码

<buttonng-click="create()"></button>

js文件中的虚拟控制器代码

$scope.create = function() {  alert("working");};

实际的html代码(我尝试了全部4个版本)

<buttonng-click="create(''tab.newpost'')"></button><buttonui-sref="tab.newpost"></button><buttonhref="/tab/newpost"></button><buttonng-click="location.path(''/tab/newpost'')"></button>

控制器文件(“发布”和“验证”依赖项正常工作)。 当我尝试将URL放入.go()和function()时,应用程序失败。

app.controller(''NavCtrl'', function ($scope, $location, $state, Post, Auth) {    $scope.post = {url: ''http://'', title: ''''};    $scope.create = function() {      /* $location.path(''/tab/newpost''); */   /* this variant doesnt work */      $state.go("/tab/newpost");     };  });

状态js文件的摘录

.state(''tab.newpost'', {      url: ''/newpost'',      views: {        ''tab-newpost'':{          templateUrl: ''templates/tab-newpost.html'',          controller: ''NewCtrl''        }      }    });$urlRouterProvider.otherwise(''/auth/login'');

答案1

小编典典

基于评论,并且由于@Thinkerer OP- 原始海报) 为此案创建了一个小插曲,我决定在其他答案后附加更多详细信息。

  • 这是@Thinkerer创建的一个矮人
  • 这是其更新的工作版本

第一个重要变化:

// instead of this$urlRouterProvider.otherwise(''/tab/post'');// we have to use this$urlRouterProvider.otherwise(''/tab/posts'');

因为州的定义是:

.state(''tab'', {  url: "/tab",  abstract: true,  templateUrl: ''tabs.html''}).state(''tab.posts'', {  url: ''/posts'',  views: {    ''tab-posts'': {      templateUrl: ''tab-posts.html'',      controller: ''PostsCtrl''    }  }})

我们需要它们的串联url ''/tab''+ ''/posts''。这就是我们要用作 其他 网址的网址 __

该应用程序的其余部分确实接近我们需要的结果…
例如,我们仍然不得不将内容放入相同的视图targetgood中,只是对这些内容进行了更改:

.state(''tab.newpost'', {  url: ''/newpost'',  views: {    // ''tab-newpost'': {    ''tab-posts'': {      templateUrl: ''tab-newpost.html'',      controller: ''NavCtrl''    }  }

因为.state(''tab.newpost''替换.state(''tab.posts''我们必须将其放置在相同的锚点中:

<ion-nav-view name="tab-posts"></ion-nav-view>

最后对控制器进行一些调整:

$scope.create = function() {    $state.go(''tab.newpost'');};$scope.close = function() {      $state.go(''tab.posts''); };

正如我已经在我前面的答案和注释说 …的 $state.go() 是如何使用的唯一正确途径ionicui-router

检查这里 所有内容 最后的注意事项-
我只是在tab.posts… 之间进行导航tab.newpost,其余部分类似

angularjs – $state.go不使用第三级嵌套状态(使用Ionic选项卡/ AngularUI)

angularjs – $state.go不使用第三级嵌套状态(使用Ionic选项卡/ AngularUI)

我正在尝试使用$state.go在Ionic(AngularJS UI路由器)应用程序中的选项卡之间切换,但我无法使其与子子状态(state.substate.subsubstate)一起使用.它实际上在移动到子状态(state.substate)时工作正常.

这就是我的意思:http://codepen.io/anon/pen/Jykmi?editors=101
按“Tab2”按钮既不起作用也不引发错误.尽管如此,用ui-sref =“tabs.tab2.home1”或href =“#/ tabs / tab2 / home1”替换ng-click =“goToState(‘tabs.tab2.home1’)”(第25行),工作得很好.这是一个例子:http://codepen.io/anon/pen/DIxhC?editors=101

即使使用ng-click =“goToState(‘tabs.tab2’)”也行,但这不是预期的目标状态.

我发现了其他类似的问题(如this和this)但我不认为他们有同样的问题.

有人知道$state.go是否应该与第三级嵌套状态一起使用?是我的代码中的问题吗?

非常感谢提前.
问候,
拉法.

解决方法

由于ui-sref =“tabs.tab2.home1”在内部使用$state.go,正如你所说的ui-sref =“tabs.tab2.home1”有效.

我的回答是肯定的:$state.go()应该与第三级嵌套状态一起使用.

我实际上在我自己的projet中使用它没有问题(但没有离子标签)

AngularJS – (使用Ionic框架) – 头标题上的数据绑定不起作用

AngularJS – (使用Ionic框架) – 头标题上的数据绑定不起作用

我正在使用一个名为“Ionic”的基于AngularJS的库( http://ionicframework.com/)。

这似乎很简单,但对我来说并不奏效。

在我看来,我有以下几点

<view title="content.title">
  <content has-header="true" padding="true">
    <p>{{ content.description }}</p>
    <p><ahref="#/tab/pets"> Back to home</a></p>
  </content>
</view>

在上述观点的控制器中,我有

angular.module('App',[]).controller('DetailCtrl',function($scope,$stateParams,MyService) {

  MyService.get($stateParams.petId).then(function(content) {
    $scope.content = content[0];
    console.log($scope.content.title); // this works!
  });
});

此视图的数据通过简单的HTTP GET服务(称为MyService)加载。

问题是当我查看此页面时,

<view title="content.title">

不显示标题。这只是一个空白。根据离子文件(http://ionicframework.com/docs/angularjs/controllers/view-state/),我认为我做正确的事情。

很奇怪,“{{content.description}}”部分作品,但“content.title”不起作用?

另外,是因为我正在动态地加载内容(通过HTTP GET)吗?

@H_301_23@
@H_301_23@
以下是Ionic如何完成此工作的一个例子。打开菜单,然后点击“关于”。当“关于”页面转换时,您将看到已解决的标题。

如Florian所说,您需要使用服务并解决以获得所需的效果。然后将返回的结果注入控制器。这有一些不利的一面。国家供应商将不会改变路线,直到承诺得到解决。这意味着用户尝试更改位置和实际发生的时间可能会有明显的滞后。

http://plnkr.co/edit/p9b6SWZmBKWYm0FIKsXY?p=preview

@H_301_23@

总结

以上是小编为你收集整理的AngularJS – (使用Ionic框架) – 头标题上的数据绑定不起作用全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

angularjs – Angular / Ionic中可重复使用的模态

angularjs – Angular / Ionic中可重复使用的模态

在使用Ionic的AngularJS中,我希望能够从不同的控制器调用一个模态,而不必复制与模态相关的代码.

以下是如何创建模态(缩写为http://learn.ionicframework.com/formulas/making-modals/).

HTML:

<divng-controller='MainCtrl' ng-click="openModal()">
    Click here to open the modal
</div>

JS:

app.controller('MainCtrl',function($scope,$ionicModal) 
{
    $ionicModal.fromTemplateUrl('contact-modal.html',{
        scope: $scope,animation: 'slide-in-up'
    }).then(function(modal) {
        $scope.modal = modal
    })  

    $scope.openModal = function() {
        $scope.modal.show()
    }

    // functions for this modal
    // ...
})

现在这一切都很好,但是如果我想从不同的控制器打开具有相同功能的相同模态,我将不得不复制与之相关的所有代码.

我如何抽象这个以使我的模态可以从不同的控制器重用和调用?

理想情况下,我希望每个模态都有自己的“控制器”(或类似的概念),而不是必须将其所有代码放入控制器中,无论打开它的是什么.

这是指令的完美场景.

指令代码:

app.directive('myPopUp',['$ionicModal',function($ionicModal) {

    return {
        restrict: 'E',scope: {
            externalScope : "="
        }
        replace: true,templateUrl: 'path/to/your/template',link: function($scope,$element,$attrs) {

            $ionicModal.fromTemplateUrl('contact-modal.html',{
                scope: $scope.externalScope,animation: 'slide-in-up'
            }).then(function(modal) {
                $scope.modal = modal
            });

            $scope.externalScope.openModal = function() {
                $scope.modal.show()
            };

        }
    };
}]);

和你的控制器:

app.controller('MainCtrl',['$scope',function($scope) {

    $scope.externalScope = {}

});

每当你想要将其包含在部分中时,只需添加:

<my-pop-up externalScope="externalScope"></my-pop-up>

该指令可以通过externalScope属性访问控制器,反之亦然.您可以从控制器调用$scope.externalScope.openModal(),它将触发您的指令模式打开.

希望这很有帮助.

今天关于我们可以使用Ionic 2和AngularJs 1吗?ionic-angular的介绍到此结束,谢谢您的阅读,有关AngularJS ng单击以转到另一页面(使用Ionic框架)、angularjs – $state.go不使用第三级嵌套状态(使用Ionic选项卡/ AngularUI)、AngularJS – (使用Ionic框架) – 头标题上的数据绑定不起作用、angularjs – Angular / Ionic中可重复使用的模态等更多相关知识的信息可以在本站进行查询。

本文标签: