angularjs - 扩展 angularJS 模块

标签 angularjs extends

我正在学习 Angular JS,有 Java 背景。我已经编写了我的第一个模块,我想扩展它 - 从我(初学者)的 Angular 来看,它看起来像一个可以扩展的Class。因此,我编写了以下代码,其中包括两个模块:myAppmyApp2

Angular JS 代码:

var myApp = angular.module('myApp', []);

myApp.controller('UserCtrl', ['$scope', function ($scope) {

    $scope.name="cat";
    $scope.type="pet";

}]);

var myApp2 = angular.module('myApp2', ['myApp']);

myApp2.controller('UserCtrl', ['$scope', function ($scope) {

    $scope.name="dog";

}]);

HTML 代码

<body ng-app="myApp2">

    <div ng-controller="UserCtrl">

        <p>{{ name }}</p>
        <p>{{ type }}</p>
    </div>

在上面的示例中,myApp2“type”的计算结果为“”。是否可以从MyApp继承属性和方法?

谢谢!

最佳答案

扩展 Controller 更容易。在下面的示例中,CatCtrl 继承 AnimalCtrl 范围:

<div ng-controller="AnimalCtrl">
    <p>{{ animal.name }}</p>
    <p>{{ animal.type }}</p>

   <div ng-controller="CatCtrl">
       <p>{{ animal.race }}</p>
   </div>
</div>

myApp.controller('AnimalCtrl', ['$scope', function ($scope) {

 $scope.animal = {
   gender: "M",
   type: ""
   ...
 };

}]);

myApp.controller('CatCtrl', ['$scope', function ($scope) {

 angular.extend($scope.animal, {
   type: "Cat",
   race: "Albino"
   ...
 });

}]);

关于angularjs - 扩展 angularJS 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22066049/

相关文章:

css - 使用上下文菜单隐藏和显示 'ng-repeat' 表行

java - 为什么我们需要允许接口(interface)只从 java.lang.Object 而不是任何其他类扩展?

android - 不需要在 Manifest 中注册 Activity 基类?

java - 如何在 C++ 中实现 MyClass<T extends OtherClass>?

java - 如何实现可以通过普通 Activity 、列表 Activity 和 map Activity 进行扩展的通用 Activity ?

javascript - 有没有办法通过函数将字符串值从 View 传递到 js 文件

javascript - AngularJs,如何分配动态模型名称

Android Activity 扩展 AlertDialog

javascript - 部分和模板的复杂嵌套

javascript - AngularJS ng-click insideinnerHTML AngularJS ng-click insideinnerHTML